4141 TARGET_CHANNEL : ${{ inputs.channel }}
4242
4343jobs :
44+ setup-dependencies :
45+ name : Setup Dependencies
46+ needs :
47+ - validate-pr
48+ uses : ./.github/workflows/setup-node-modules.yml
49+ with :
50+ ref : ${{ inputs.commit_hash }}
51+ fetch-depth : 0
52+ upload-artifact : true
53+ artifact-name : node-modules-eas-update
54+ artifact-retention-days : 1
55+
4456 fingerprint-comparison :
4557 name : Compare Expo Fingerprints
58+ needs :
59+ - setup-dependencies
4660 runs-on : ubuntu-latest
4761 outputs :
4862 branch_fingerprint : ${{ steps.branch_fingerprint.outputs.fingerprint }}
@@ -67,24 +81,34 @@ jobs:
6781 with :
6882 node-version : ' 20'
6983
84+ - name : Download node_modules artifact (PR commit)
85+ uses : actions/download-artifact@v4
86+ with :
87+ name : node-modules-eas-update
88+
7089 - name : Install dependencies (workflow branch)
7190 run : |
7291 echo "📦 Installing dependencies for current branch..."
73- yarn install --immutable
92+ yarn install --immutable --mode=skip-build
7493
75- - name : Generate fingerprint (workflow branch )
94+ - name : Generate fingerprint (target commit )
7695 id : branch_fingerprint
7796 run : |
7897 echo "🧬 Generating fingerprint for current branch..."
7998 FINGERPRINT=$(yarn fingerprint:generate)
8099 echo "fingerprint=$FINGERPRINT" >> "$GITHUB_OUTPUT"
81100 echo "Target PR fingerprint: $FINGERPRINT"
82101
102+ - name : Download node_modules artifact (base branch)
103+ uses : actions/download-artifact@v4
104+ with :
105+ name : node-modules-eas-update
106+
83107 - name : Install dependencies (base branch)
84108 working-directory : main
85109 run : |
86110 echo "📦 Installing dependencies for base branch snapshot (${BASE_BRANCH_REF})..."
87- yarn install --immutable
111+ yarn install --immutable --mode=skip-build
88112
89113 - name : Generate fingerprint (base branch)
90114 id : main_fingerprint
@@ -178,6 +202,7 @@ jobs:
178202 - fingerprint-comparison
179203 - approval
180204 - validate-pr
205+ - setup-dependencies
181206 if : >
182207 needs.fingerprint-comparison.outputs.fingerprints_equal == 'true' &&
183208 needs.approval.result == 'success'
@@ -240,6 +265,21 @@ jobs:
240265 with :
241266 node-version : ' 20'
242267
268+ - name : Download node_modules artifact
269+ uses : actions/download-artifact@v4
270+ with :
271+ name : node-modules-eas-update
272+
273+ - name : Verify downloaded artifacts
274+ run : |
275+ echo "✅ Verifying downloaded artifacts..."
276+ if [ ! -d "node_modules" ]; then
277+ echo "❌ node_modules directory not found"
278+ exit 1
279+ fi
280+ echo "📦 node_modules size: $(du -sh node_modules | cut -f1)"
281+ echo "✅ Artifacts verified"
282+
243283 - name : Determine signing secret name
244284 shell : bash
245285 env :
@@ -286,16 +326,6 @@ jobs:
286326 echo "✅ Set secret for key: $key"
287327 done
288328
289- - name : Install dependencies
290- run : |
291- echo "📦 Installing dependencies..."
292- yarn install --immutable
293-
294- - name : Setup project
295- run : |
296- echo "🔧 Running setup for GitHub CI..."
297- yarn setup:github-ci
298-
299329 - name : Display configuration
300330 run : |
301331 TARGET_RUNTIME_VERSION=$(node -p "require('./package.json').version")
0 commit comments