Skip to content

Commit d8a84f5

Browse files
committed
refactor(packaging): split optional platform package distribution
1 parent f486149 commit d8a84f5

32 files changed

Lines changed: 3349 additions & 2029 deletions

.github/workflows/ci.yml

Lines changed: 11 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
cache-dependency-path: package-lock.json
5353

5454
- name: Install npm dependencies
55-
run: npm ci
55+
run: npm ci --omit=optional
5656

5757
- name: Run test suite
5858
run: npm test -- --runInBand
@@ -77,19 +77,16 @@ jobs:
7777
cache-dependency-path: package-lock.json
7878

7979
- name: Install npm dependencies
80-
run: npm ci
80+
run: npm ci --omit=optional
8181

8282
- name: Build TypeScript artifacts
8383
run: npm run build
8484

85-
- name: Build local prebuilds for tarball verification
86-
run: npm run build:prebuilds
87-
88-
- name: Verify package tarball
85+
- name: Verify root package tarball
8986
run: npm run verify:pack
9087

9188
prebuild:
92-
name: prebuild-${{ matrix.platformDir }}-node-${{ matrix.nodeVersion }}
89+
name: prebuild-${{ matrix.packageName }}
9390
runs-on: ${{ matrix.runner }}
9491
needs: plan
9592
strategy:
@@ -109,86 +106,13 @@ jobs:
109106
cache-dependency-path: package-lock.json
110107

111108
- name: Install npm dependencies
112-
run: npm ci
113-
114-
- name: Build TypeScript artifacts
115-
run: npm run build
116-
117-
- name: Build platform prebuild
118-
env:
119-
PREBUILD_TARGETS: ${{ matrix.prebuildTargets }}
120-
run: npm run build:prebuilds
121-
122-
- name: Verify prebuild platform artifact
123-
env:
124-
PREBUILD_TARGETS: ${{ matrix.prebuildTargets }}
125-
run: npm run verify:prebuild
126-
127-
- name: Upload prebuild artifact
128-
uses: actions/upload-artifact@v7
129-
with:
130-
name: prebuild-${{ matrix.platformDir }}
131-
path: prebuilds
132-
if-no-files-found: error
133-
134-
prebuild-coverage:
135-
name: prebuild-coverage
136-
runs-on: ubuntu-latest
137-
needs: prebuild
138-
steps:
139-
- name: Checkout
140-
uses: actions/checkout@v6
141-
142-
- name: Download prebuild artifacts
143-
uses: actions/download-artifact@v8
144-
with:
145-
pattern: prebuild-*
146-
path: downloaded-prebuilds
147-
merge-multiple: true
148-
149-
- name: Merge prebuild artifacts
150-
run: PREBUILD_ARTIFACT_ROOT=downloaded-prebuilds PREBUILD_MERGED_DIR=merged-prebuilds node ./scripts/merge-prebuild-artifacts.js
109+
run: npm ci --omit=optional
151110

152-
- name: Verify prebuild release coverage
153-
run: node ./scripts/verify-prebuild-coverage.js --base-dir=merged-prebuilds --release-plan
111+
- name: Build platform prebuilds
112+
run: npm run build:prebuilds -- --package=${{ matrix.packageName }}
154113

155-
- name: Upload merged prebuild artifact
156-
uses: actions/upload-artifact@v7
157-
with:
158-
name: merged-prebuilds
159-
path: merged-prebuilds
160-
if-no-files-found: error
161-
162-
package:
163-
name: package
164-
runs-on: ubuntu-latest
165-
needs: [test, pack-verify, prebuild-coverage]
166-
steps:
167-
- name: Checkout
168-
uses: actions/checkout@v6
169-
170-
- name: Setup Node.js
171-
uses: actions/setup-node@v6
172-
with:
173-
node-version: 24.14.0
174-
cache: npm
175-
cache-dependency-path: package-lock.json
176-
177-
- name: Install npm dependencies
178-
run: npm ci
114+
- name: Verify platform prebuilds
115+
run: npm run verify:prebuild -- --package=${{ matrix.packageName }}
179116

180-
- name: Download merged prebuild artifact
181-
uses: actions/download-artifact@v8
182-
with:
183-
name: merged-prebuilds
184-
path: .
185-
186-
- name: Prepare merged prebuild directory
187-
run: |
188-
rm -rf prebuilds
189-
mv merged-prebuilds prebuilds
190-
191-
- name: Pack release tarball
192-
env:
193-
FUNCTION_LOCATION_PREBUILDS_READY: '1'
194-
run: npm pack --silent
117+
- name: Verify platform package tarball
118+
run: node ./scripts/verify-pack-tarball.js --package-dir=${{ matrix.packageDir }}

0 commit comments

Comments
 (0)