Просмотр исходного кода

Merge pull request #9323 from weseek/support/use-pnpm-deploy-instead-of-turbo-prune

support: Use `pnpm deploy` instead of `turbo prune`
mergify[bot] 1 год назад
Родитель
Сommit
fb98a3c626

+ 3 - 3
.github/workflows/ci-app.yml

@@ -55,7 +55,7 @@ jobs:
       - name: Install dependencies
       - name: Install dependencies
         run: |
         run: |
           pnpm add turbo --global
           pnpm add turbo --global
-          pnpm install
+          pnpm install --frozen-lockfile
 
 
       - name: Lint
       - name: Lint
         run: |
         run: |
@@ -109,7 +109,7 @@ jobs:
       - name: Install dependencies
       - name: Install dependencies
         run: |
         run: |
           pnpm add turbo --global
           pnpm add turbo --global
-          pnpm install
+          pnpm install --frozen-lockfile
 
 
       - name: Test
       - name: Test
         run: |
         run: |
@@ -173,7 +173,7 @@ jobs:
       - name: Install dependencies
       - name: Install dependencies
         run: |
         run: |
           pnpm add turbo --global
           pnpm add turbo --global
-          pnpm install
+          pnpm install --frozen-lockfile
 
 
       - name: turbo run launch-dev:ci
       - name: turbo run launch-dev:ci
         working-directory: ./apps/app
         working-directory: ./apps/app

+ 7 - 13
.github/workflows/ci-slackbot-proxy.yml

@@ -55,7 +55,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Lint
     - name: Lint
       run: |
       run: |
@@ -120,7 +120,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: turbo run dev:ci
     - name: turbo run dev:ci
       working-directory: ./apps/slackbot-proxy
       working-directory: ./apps/slackbot-proxy
@@ -189,16 +189,9 @@ jobs:
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
 
 
-    - name: Prune repositories
-      run: |
-        turbo prune @growi/slackbot-proxy
-        rm -rf apps packages
-        mv out/* .
-
     - name: Install dependencies
     - name: Install dependencies
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
       run: |
       run: |
-        pnpm install --no-frozen-lockfile
+        pnpm install --frozen-lockfile
 
 
     - name: Restore dist
     - name: Restore dist
       uses: actions/cache/restore@v4
       uses: actions/cache/restore@v4
@@ -215,10 +208,11 @@ jobs:
       run: |
       run: |
         turbo run build
         turbo run build
 
 
-    - name: Install dependencies for production
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
+    - name: Assembling all dependencies
       run: |
       run: |
-        pnpm install --no-frozen-lockfile --prod
+        rm -rf out
+        pnpm deploy out --prod --filter @growi/slackbot-proxy
+        rm -rf apps/slackbot-proxy/node_modules && mv out/node_modules apps/slackbot-proxy/node_modules
 
 
     - name: pnpm run start:prod:ci
     - name: pnpm run start:prod:ci
       working-directory: ./apps/slackbot-proxy
       working-directory: ./apps/slackbot-proxy

+ 1 - 1
.github/workflows/release-slackbot-proxy.yml

@@ -103,7 +103,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Bump versions for next RC
     - name: Bump versions for next RC
       run: |
       run: |

+ 2 - 2
.github/workflows/release-subpackages.yml

@@ -38,7 +38,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Setup .npmrc
     - name: Setup .npmrc
       run: |
       run: |
@@ -81,7 +81,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Create Release Pull Request or Publish to npm
     - name: Create Release Pull Request or Publish to npm
       id: changesets
       id: changesets

+ 2 - 2
.github/workflows/release.yml

@@ -32,7 +32,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Bump versions
     - name: Bump versions
       run: |
       run: |
@@ -172,7 +172,7 @@ jobs:
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Bump versions for next RC
     - name: Bump versions for next RC
       run: |
       run: |

+ 30 - 28
.github/workflows/reusable-app-prod.yml

@@ -19,6 +19,7 @@ jobs:
 
 
     outputs:
     outputs:
       PROD_FILES: ${{ steps.archive-prod-files.outputs.file }}
       PROD_FILES: ${{ steps.archive-prod-files.outputs.file }}
+      PROD_DEPS: ${{ steps.archive-prod-deps.outputs.file }}
 
 
     steps:
     steps:
     - uses: actions/checkout@v4
     - uses: actions/checkout@v4
@@ -37,16 +38,9 @@ jobs:
       run: |
       run: |
         pnpm add turbo --global
         pnpm add turbo --global
 
 
-    - name: Prune repositories
-      run: |
-        turbo prune @growi/app
-        rm -rf apps packages
-        mv out/* .
-
     - name: Install dependencies
     - name: Install dependencies
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
       run: |
       run: |
-        pnpm install --no-frozen-lockfile
+        pnpm install --frozen-lockfile
 
 
     - name: Cache/Restore dist
     - name: Cache/Restore dist
       uses: actions/cache@v4
       uses: actions/cache@v4
@@ -67,6 +61,12 @@ jobs:
       env:
       env:
         ANALYZE: 1
         ANALYZE: 1
 
 
+    - name: Assembling all dependencies
+      run: |
+        rm -rf out
+        pnpm deploy out --prod --filter @growi/app
+        rm -rf apps/app/node_modules && mv out/node_modules apps/app/node_modules
+
     - name: Archive production files
     - name: Archive production files
       id: archive-prod-files
       id: archive-prod-files
       run: |
       run: |
@@ -79,17 +79,28 @@ jobs:
           apps/app/resource \
           apps/app/resource \
           apps/app/tmp \
           apps/app/tmp \
           apps/app/.env.production* \
           apps/app/.env.production* \
-          apps/app/package.json \
-          packages/*/dist \
-          packages/*/package.json
+          apps/app/package.json
         echo "file=production.tar.gz" >> $GITHUB_OUTPUT
         echo "file=production.tar.gz" >> $GITHUB_OUTPUT
 
 
+    - name: Archive production dependencies
+      id: archive-prod-deps
+      run: |
+        tar -zcf production-deps.tar.gz \
+          apps/app/node_modules
+        echo "file=production-deps.tar.gz" >> $GITHUB_OUTPUT
+
     - name: Upload production files as artifact
     - name: Upload production files as artifact
       uses: actions/upload-artifact@v4
       uses: actions/upload-artifact@v4
       with:
       with:
         name: Production Files (node${{ inputs.node-version }})
         name: Production Files (node${{ inputs.node-version }})
         path: ${{ steps.archive-prod-files.outputs.file }}
         path: ${{ steps.archive-prod-files.outputs.file }}
 
 
+    - name: Upload production dependencies as artifact
+      uses: actions/upload-artifact@v4
+      with:
+        name: Production Dependencies (node${{ inputs.node-version }})
+        path: ${{ steps.archive-prod-deps.outputs.file }}
+
     - name: Upload report as artifact
     - name: Upload report as artifact
       uses: actions/upload-artifact@v4
       uses: actions/upload-artifact@v4
       with:
       with:
@@ -134,29 +145,20 @@ jobs:
         node-version: ${{ inputs.node-version }}
         node-version: ${{ inputs.node-version }}
         cache: 'pnpm'
         cache: 'pnpm'
 
 
-    - name: Install turbo
-      run: |
-        pnpm add turbo --global
-
-    - name: Prune repositories
-      run: |
-        turbo prune @growi/app
-        rm -rf apps packages
-        mv out/* .
-
-    - name: Install dependencies
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
-      run: |
-        pnpm install --no-frozen-lockfile --prod
-
     - name: Download production files artifact
     - name: Download production files artifact
       uses: actions/download-artifact@v4
       uses: actions/download-artifact@v4
       with:
       with:
         name: Production Files (node${{ inputs.node-version }})
         name: Production Files (node${{ inputs.node-version }})
 
 
-    - name: Extract procution files artifact
+    - name: Download production dependencies artifact
+      uses: actions/download-artifact@v4
+      with:
+        name: Production Dependencies (node${{ inputs.node-version }})
+
+    - name: Extract procution files and dependencies
       run: |
       run: |
         tar -xf ${{ needs.build-prod.outputs.PROD_FILES }}
         tar -xf ${{ needs.build-prod.outputs.PROD_FILES }}
+        tar -xf ${{ needs.build-prod.outputs.PROD_DEPS }}
 
 
     - name: pnpm run server:ci
     - name: pnpm run server:ci
       working-directory: ./apps/app
       working-directory: ./apps/app
@@ -219,7 +221,7 @@ jobs:
 
 
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Install Playwright browsers
     - name: Install Playwright browsers
       run: |
       run: |

+ 1 - 1
.github/workflows/reusable-app-reg-suit.yml

@@ -63,7 +63,7 @@ jobs:
 
 
     - name: Install dependencies
     - name: Install dependencies
       run: |
       run: |
-        pnpm install
+        pnpm install --frozen-lockfile
 
 
     - name: Download screenshots taken by cypress
     - name: Download screenshots taken by cypress
       uses: actions/download-artifact@v4
       uses: actions/download-artifact@v4

+ 2 - 0
.gitignore

@@ -41,4 +41,6 @@ yarn-error.log*
 
 
 # turborepo
 # turborepo
 .turbo
 .turbo
+
+# pnpm deploy target dir
 out
 out

+ 2 - 2
apps/app/docker/Dockerfile

@@ -40,8 +40,8 @@ RUN turbo run clean
 RUN turbo run build --filter @growi/app
 RUN turbo run build --filter @growi/app
 
 
 # make artifacts
 # make artifacts
-RUN pnpm --filter @growi/app --prod deploy pruned
-RUN rm -rf apps/app/node_modules && mv pruned/node_modules apps/app/node_modules
+RUN pnpm deploy out --prod --filter @growi/app
+RUN rm -rf apps/app/node_modules && mv out/node_modules apps/app/node_modules
 RUN rm -rf apps/app/.next/cache
 RUN rm -rf apps/app/.next/cache
 RUN tar -zcf packages.tar.gz \
 RUN tar -zcf packages.tar.gz \
   package.json \
   package.json \

+ 4 - 0
apps/app/package.json

@@ -101,6 +101,7 @@
     "connect-mongo": "^4.6.0",
     "connect-mongo": "^4.6.0",
     "connect-redis": "^4.0.4",
     "connect-redis": "^4.0.4",
     "cookie-parser": "^1.4.5",
     "cookie-parser": "^1.4.5",
+    "cross-env": "^7.0.0",
     "csurf": "^1.11.0",
     "csurf": "^1.11.0",
     "csv-to-markdown-table": "^1.4.1",
     "csv-to-markdown-table": "^1.4.1",
     "date-fns": "^3.6.0",
     "date-fns": "^3.6.0",
@@ -108,6 +109,7 @@
     "detect-indent": "^7.0.0",
     "detect-indent": "^7.0.0",
     "diff": "^5.0.0",
     "diff": "^5.0.0",
     "diff_match_patch": "^0.1.1",
     "diff_match_patch": "^0.1.1",
+    "dotenv-flow": "^3.2.0",
     "ejs": "^3.1.10",
     "ejs": "^3.1.10",
     "esa-node": "^0.2.2",
     "esa-node": "^0.2.2",
     "escape-string-regexp": "^4.0.0",
     "escape-string-regexp": "^4.0.0",
@@ -214,6 +216,8 @@
     "swagger-jsdoc": "^6.2.8",
     "swagger-jsdoc": "^6.2.8",
     "swr": "^2.2.2",
     "swr": "^2.2.2",
     "throttle-debounce": "^5.0.0",
     "throttle-debounce": "^5.0.0",
+    "ts-deepmerge": "^6.2.0",
+    "tslib": "^2.8.0",
     "uglifycss": "^0.0.29",
     "uglifycss": "^0.0.29",
     "uid-safe": "^2.1.5",
     "uid-safe": "^2.1.5",
     "unified": "^11.0.0",
     "unified": "^11.0.0",

+ 2 - 2
apps/slackbot-proxy/docker/Dockerfile

@@ -38,8 +38,8 @@ RUN pnpm install ---frozen-lockfile
 RUN turbo run build --filter @growi/slackbot-proxy
 RUN turbo run build --filter @growi/slackbot-proxy
 
 
 # make artifacts
 # make artifacts
-RUN pnpm --filter @growi/slackbot-proxy --prod deploy pruned
-RUN rm -rf apps/slackbot-proxy/node_modules && mv pruned/node_modules apps/slackbot-proxy/node_modules
+RUN pnpm deploy out --prod --filter @growi/slackbot-proxy
+RUN rm -rf apps/slackbot-proxy/node_modules && mv out/node_modules apps/slackbot-proxy/node_modules
 RUN tar -zcf packages.tar.gz \
 RUN tar -zcf packages.tar.gz \
   package.json \
   package.json \
   apps/slackbot-proxy/package.json \
   apps/slackbot-proxy/package.json \

+ 3 - 0
apps/slackbot-proxy/package.json

@@ -49,7 +49,9 @@
     "bunyan": "^1.8.15",
     "bunyan": "^1.8.15",
     "compression": "^1.7.4",
     "compression": "^1.7.4",
     "cookie-parser": "^1.4.5",
     "cookie-parser": "^1.4.5",
+    "cross-env": "^7.0.0",
     "date-fns": "^3.6.0",
     "date-fns": "^3.6.0",
+    "dotenv-flow": "^3.2.0",
     "express": "^4.20.0",
     "express": "^4.20.0",
     "express-bunyan-logger": "^1.3.3",
     "express-bunyan-logger": "^1.3.3",
     "extensible-custom-error": "^0.0.7",
     "extensible-custom-error": "^0.0.7",
@@ -58,6 +60,7 @@
     "method-override": "^3.0.0",
     "method-override": "^3.0.0",
     "mysql2": "^2.2.5",
     "mysql2": "^2.2.5",
     "read-pkg-up": "^7.0.1",
     "read-pkg-up": "^7.0.1",
+    "tslib": "^2.8.0",
     "typeorm": "=0.2.45",
     "typeorm": "=0.2.45",
     "universal-bunyan": "^0.9.2"
     "universal-bunyan": "^0.9.2"
   },
   },

+ 4 - 6
package.json

@@ -39,12 +39,6 @@
     "version:premajor": "pnpm version premajor --preid=RC --no-git-tag-version"
     "version:premajor": "pnpm version premajor --preid=RC --no-git-tag-version"
   },
   },
   "dependencies": {
   "dependencies": {
-    "cross-env": "^7.0.0",
-    "dotenv-flow": "^3.2.0",
-    "npm-run-all": "^4.1.5",
-    "ts-deepmerge": "^6.2.0",
-    "tslib": "^2.3.1",
-    "yargs": "^17.7.1"
   },
   },
   "// comments for defDependencies": {
   "// comments for defDependencies": {
     "vite-plugin-dts": "v4.2.1 causes the unexpected error 'Cannot find package 'vue-tsc''"
     "vite-plugin-dts": "v4.2.1 causes the unexpected error 'Cannot find package 'vue-tsc''"
@@ -67,6 +61,8 @@
     "@vitejs/plugin-react": "^4.3.1",
     "@vitejs/plugin-react": "^4.3.1",
     "@vitest/coverage-v8": "^2.1.1",
     "@vitest/coverage-v8": "^2.1.1",
     "@vitest/ui": "^2.1.1",
     "@vitest/ui": "^2.1.1",
+    "cross-env": "^7.0.0",
+    "dotenv-flow": "^3.2.0",
     "eslint": "^8.41.0",
     "eslint": "^8.41.0",
     "eslint-config-next": "^12.1.6",
     "eslint-config-next": "^12.1.6",
     "eslint-config-weseek": "^2.1.1",
     "eslint-config-weseek": "^2.1.1",
@@ -80,6 +76,7 @@
     "glob": "^8.1.0",
     "glob": "^8.1.0",
     "mock-require": "^3.0.3",
     "mock-require": "^3.0.3",
     "nodemon": "^3.1.3",
     "nodemon": "^3.1.3",
+    "npm-run-all": "^4.1.5",
     "path-browserify": "^1.0.1",
     "path-browserify": "^1.0.1",
     "reg-keygen-git-hash-plugin": "^0.11.1",
     "reg-keygen-git-hash-plugin": "^0.11.1",
     "reg-notify-github-plugin": "^0.11.1",
     "reg-notify-github-plugin": "^0.11.1",
@@ -91,6 +88,7 @@
     "stylelint": "^16.5.0",
     "stylelint": "^16.5.0",
     "stylelint-config-recess-order": "^5.0.1",
     "stylelint-config-recess-order": "^5.0.1",
     "stylelint-config-recommended-scss": "^14.0.0",
     "stylelint-config-recommended-scss": "^14.0.0",
+    "ts-deepmerge": "^6.2.0",
     "ts-node": "^10.9.2",
     "ts-node": "^10.9.2",
     "ts-patch": "^3.2.0",
     "ts-patch": "^3.2.0",
     "tsconfig-paths": "^4.2.0",
     "tsconfig-paths": "^4.2.0",

Разница между файлами не показана из-за своего большого размера
+ 147 - 132
pnpm-lock.yaml


Некоторые файлы не были показаны из-за большого количества измененных файлов