|
47 | 47 | - vcbuild.bat |
48 | 48 | - .** |
49 | 49 | - '!.github/workflows/test-shared.yml' |
| 50 | + - '!.github/actions/build-shared/**' |
50 | 51 | types: [opened, synchronize, reopened, ready_for_review] |
51 | 52 | push: |
52 | 53 | branches: |
|
97 | 98 | - vcbuild.bat |
98 | 99 | - .** |
99 | 100 | - '!.github/workflows/test-shared.yml' |
| 101 | + - '!.github/actions/build-shared/**' |
100 | 102 |
|
101 | 103 | concurrency: |
102 | 104 | group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |
@@ -153,53 +155,16 @@ jobs: |
153 | 155 | name: '${{ matrix.system }}: with shared libraries' |
154 | 156 | runs-on: ${{ matrix.runner }} |
155 | 157 | steps: |
156 | | - - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 |
| 158 | + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
157 | 159 | if: ${{ github.event_name != 'workflow_dispatch' }} |
158 | 160 | with: |
159 | | - name: tarballs |
160 | | - path: tarballs |
161 | | - |
162 | | - - name: Extract tarball |
| 161 | + persist-credentials: false |
| 162 | + sparse-checkout: .github/actions |
| 163 | + - uses: ./.github/actions/build-shared |
163 | 164 | if: ${{ github.event_name != 'workflow_dispatch' }} |
164 | | - run: | |
165 | | - tar xzf tarballs/*.tar.gz -C "$RUNNER_TEMP" |
166 | | - echo "TAR_DIR=$RUNNER_TEMP/$(basename tarballs/*.tar.gz .tar.gz)" >> "$GITHUB_ENV" |
167 | | -
|
168 | | - - uses: cachix/install-nix-action@96951a368ba55167b55f1c916f7d416bac6505fe # v31.10.3 |
169 | 165 | with: |
170 | | - extra_nix_config: sandbox = true |
171 | | - |
172 | | - - uses: cachix/cachix-action@1eb2ef646ac0255473d23a5907ad7b04ce94065c # v17 |
173 | | - with: |
174 | | - name: nodejs |
175 | | - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} |
176 | | - |
177 | | - - name: Configure sccache |
178 | | - if: github.base_ref == 'main' || github.ref_name == 'main' |
179 | | - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 |
180 | | - with: |
181 | | - script: | |
182 | | - core.exportVariable('SCCACHE_GHA_ENABLED', 'on'); |
183 | | - core.exportVariable('ACTIONS_CACHE_SERVICE_V2', 'on'); |
184 | | - core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || ''); |
185 | | - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); |
186 | | - core.exportVariable('NIX_SCCACHE', '(import <nixpkgs> {}).sccache'); |
187 | | -
|
188 | | - - name: Build Node.js and run tests |
189 | | - run: | |
190 | | - nix-shell \ |
191 | | - -I "nixpkgs=$TAR_DIR/tools/nix/pkgs.nix" \ |
192 | | - --pure --keep TAR_DIR --keep FLAKY_TESTS \ |
193 | | - --keep SCCACHE_GHA_ENABLED --keep ACTIONS_CACHE_SERVICE_V2 --keep ACTIONS_RESULTS_URL --keep ACTIONS_RUNTIME_TOKEN \ |
194 | | - --arg loadJSBuiltinsDynamically false \ |
195 | | - --arg useSeparateDerivationForV8 true \ |
196 | | - --arg ccache "${NIX_SCCACHE:-null}" \ |
197 | | - --arg devTools '[]' \ |
198 | | - --arg benchmarkTools '[]' \ |
199 | | - ${{ endsWith(matrix.system, '-darwin') && '--arg withAmaro false --arg withLief false --arg withSQLite false --arg withFFI false --arg extraConfigFlags ''["--without-inspector" "--without-node-options"]'' \' || '\' }} |
200 | | - --run ' |
201 | | - make -C "$TAR_DIR" run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9 --skip-tests=$CI_SKIP_TESTS" |
202 | | - ' "$TAR_DIR/shell.nix" |
| 166 | + system: ${{ matrix.system }} |
| 167 | + cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }} |
203 | 168 |
|
204 | 169 | # Builds the matrix for the `build-openssl` job. The logic lives in |
205 | 170 | # tools/nix/collect-openssl-matrix.sh. |
@@ -244,55 +209,18 @@ jobs: |
244 | 209 | name: 'x86_64-linux: with shared ${{ matrix.openssl.attr }} (${{ matrix.openssl.version }})' |
245 | 210 | runs-on: ubuntu-24.04 |
246 | 211 | continue-on-error: ${{ matrix.openssl['continue-on-error'] }} |
| 212 | + env: |
| 213 | + OPENSSL_ATTR: ${{ matrix.openssl.attr }} |
247 | 214 | steps: |
248 | | - - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 |
249 | | - with: |
250 | | - name: tarballs |
251 | | - path: tarballs |
252 | | - |
253 | | - - name: Extract tarball |
254 | | - run: | |
255 | | - tar xzf tarballs/*.tar.gz -C "$RUNNER_TEMP" |
256 | | - echo "TAR_DIR=$RUNNER_TEMP/$(basename tarballs/*.tar.gz .tar.gz)" >> "$GITHUB_ENV" |
257 | | -
|
258 | | - - uses: cachix/install-nix-action@96951a368ba55167b55f1c916f7d416bac6505fe # v31.10.3 |
259 | | - with: |
260 | | - extra_nix_config: sandbox = true |
261 | | - |
262 | | - - uses: cachix/cachix-action@1eb2ef646ac0255473d23a5907ad7b04ce94065c # v17 |
| 215 | + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
263 | 216 | with: |
264 | | - name: nodejs |
265 | | - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} |
266 | | - |
267 | | - - name: Configure sccache |
268 | | - if: github.base_ref == 'main' || github.ref_name == 'main' |
269 | | - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 |
| 217 | + persist-credentials: false |
| 218 | + sparse-checkout: .github/actions |
| 219 | + - uses: ./.github/actions/build-shared |
270 | 220 | with: |
271 | | - script: | |
272 | | - core.exportVariable('SCCACHE_GHA_ENABLED', 'on'); |
273 | | - core.exportVariable('ACTIONS_CACHE_SERVICE_V2', 'on'); |
274 | | - core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || ''); |
275 | | - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); |
276 | | - core.exportVariable('NIX_SCCACHE', '(import <nixpkgs> {}).sccache'); |
277 | | -
|
278 | | - - name: Build Node.js and run tests |
279 | | - env: |
280 | | - OPENSSL_ATTR: ${{ matrix.openssl.attr }} |
281 | | - run: | |
282 | | - # Same invocation as the `build` job, except `--arg sharedLibDeps` |
283 | | - # overrides the `openssl` attr of the default shared-lib set with |
| 221 | + system: x86_64-linux |
| 222 | + cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }} |
| 223 | + # Override just the `openssl` attr of the default shared-lib set with |
284 | 224 | # the matrix-selected nixpkgs attribute (e.g. `openssl_3_6`). All |
285 | 225 | # other shared libs (brotli, cares, libuv, …) keep their defaults. |
286 | | - nix-shell \ |
287 | | - -I "nixpkgs=$TAR_DIR/tools/nix/pkgs.nix" \ |
288 | | - --pure --keep TAR_DIR --keep FLAKY_TESTS \ |
289 | | - --keep SCCACHE_GHA_ENABLED --keep ACTIONS_CACHE_SERVICE_V2 --keep ACTIONS_RESULTS_URL --keep ACTIONS_RUNTIME_TOKEN \ |
290 | | - --arg loadJSBuiltinsDynamically false \ |
291 | | - --arg useSeparateDerivationForV8 true \ |
292 | | - --arg ccache "${NIX_SCCACHE:-null}" \ |
293 | | - --arg devTools '[]' \ |
294 | | - --arg benchmarkTools '[]' \ |
295 | | - --arg sharedLibDeps "(import $TAR_DIR/tools/nix/sharedLibDeps.nix {}) // { openssl = (import $TAR_DIR/tools/nix/pkgs.nix {}).$OPENSSL_ATTR; }" \ |
296 | | - --run ' |
297 | | - make -C "$TAR_DIR" run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9 --skip-tests=$CI_SKIP_TESTS" |
298 | | - ' "$TAR_DIR/shell.nix" |
| 226 | + extra-nix-args: --arg sharedLibDeps "(import $TAR_DIR/tools/nix/sharedLibDeps.nix {}) // { openssl = (import $TAR_DIR/tools/nix/pkgs.nix {}).$OPENSSL_ATTR; }" |
0 commit comments