Yuki Takei 1 год назад
Родитель
Сommit
f5c10fc9c3
1 измененных файлов с 28 добавлено и 28 удалено
  1. 28 28
      .github/workflows/reusable-app-prod.yml

+ 28 - 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,11 @@ jobs:
       env:
       env:
         ANALYZE: 1
         ANALYZE: 1
 
 
+    - name: Assembling all dependencies
+      run: |
+        pnpm --filter @growi/app --prod deploy pruned
+        rm -rf apps/app/node_modules && mv pruned/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 +78,29 @@ jobs:
           apps/app/resource \
           apps/app/resource \
           apps/app/tmp \
           apps/app/tmp \
           apps/app/.env.production* \
           apps/app/.env.production* \
+          apps/app/next.config.js \
           apps/app/package.json \
           apps/app/package.json \
-          packages/*/dist \
-          packages/*/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:
@@ -125,8 +136,6 @@ jobs:
           discovery.type: single-node
           discovery.type: single-node
 
 
     steps:
     steps:
-    - uses: actions/checkout@v4
-
     - uses: pnpm/action-setup@v4
     - uses: pnpm/action-setup@v4
 
 
     - uses: actions/setup-node@v4
     - uses: actions/setup-node@v4
@@ -134,29 +143,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