diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 92bab7856bb..d46ab788615 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -121,15 +121,11 @@ jobs: --pure --keep TAR_DIR --keep FLAKY_TESTS \ --keep SCCACHE_GHA_ENABLED --keep SCCACHE_GHA_RW_MODE \ --keep ACTIONS_CACHE_SERVICE_V2 --keep ACTIONS_RESULTS_URL --keep ACTIONS_RUNTIME_TOKEN \ - --arg useSeparateDerivationForV8 true \ --arg withPerfetto ${{ matrix.perfetto || false }} \ - --arg loadJSBuiltinsDynamically false \ --arg ccache '(import {}).sccache' \ - --arg devTools '[]' \ - --arg benchmarkTools '[]' \ --run ' make build-ci -j4 V=1 && sccache --stop-server - ' + ' tools/nix/ci-shell.nix mv out/Release/node base_node - name: Checkout the merge commit @@ -141,15 +137,11 @@ jobs: nix-shell \ -I nixpkgs=./tools/nix/pkgs.nix \ --pure --keep SCCACHE_LOCAL_RW_MODE \ - --arg useSeparateDerivationForV8 true \ --arg withPerfetto ${{ matrix.perfetto || false }} \ - --arg loadJSBuiltinsDynamically false \ --arg ccache '(import {}).sccache' \ - --arg devTools '[]' \ - --arg benchmarkTools '[]' \ --run ' make build-ci -j4 V=1 - ' + ' tools/nix/ci-shell.nix env: SCCACHE_LOCAL_RW_MODE: READ_ONLY diff --git a/.github/workflows/build-shared.yml b/.github/workflows/build-shared.yml index 7d77c13e568..73f7ec6afbb 100644 --- a/.github/workflows/build-shared.yml +++ b/.github/workflows/build-shared.yml @@ -85,12 +85,9 @@ jobs: -I "nixpkgs=$TAR_DIR/tools/nix/pkgs.nix" \ --pure --keep TAR_DIR --keep FLAKY_TESTS \ --keep SCCACHE_GHA_ENABLED --keep ACTIONS_CACHE_SERVICE_V2 --keep ACTIONS_RESULTS_URL --keep ACTIONS_RUNTIME_TOKEN \ - --arg loadJSBuiltinsDynamically false \ --arg ccache "${NIX_SCCACHE:-null}" \ - --arg devTools '[]' \ - --arg benchmarkTools '[]' \ --arg pkcs11 ${{ inputs.pkcs11-store-test }} \ ${{ inputs.extra-nix-flags }} \ --run ' make -C "$TAR_DIR" run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9 --skip-tests=$CI_SKIP_TESTS" - ' "$TAR_DIR/shell.nix" + ' "$TAR_DIR/tools/nix/ci-shell.nix" diff --git a/.github/workflows/test-shared.yml b/.github/workflows/test-shared.yml index 1a5e9c3261f..436ca26d94c 100644 --- a/.github/workflows/test-shared.yml +++ b/.github/workflows/test-shared.yml @@ -165,19 +165,7 @@ jobs: with: runner: ${{ matrix.runner }} with-sccache: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} - extra-nix-flags: | - --arg useSeparateDerivationForV8 true \ - ${{ matrix.perfetto && '--arg withPerfetto true \' || '\' }} - ${{ endsWith(matrix.system, '-darwin') && '\ - --arg withAmaro false \ - --arg withFFI false \ - --arg withLief false \ - --arg withSQLite false \ - --arg withTemporal false \ - --arg extraConfigFlags ''[ - "--without-inspector" - "--without-node-options" - ]'' \' || '\' }} + extra-nix-flags: ${{ matrix.perfetto && '--arg withPerfetto true' || '' }} secrets: CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} @@ -209,7 +197,7 @@ jobs: id: v8-drv run: | V8_DRV=$( - nix-instantiate -E "builtins.filter (p: p.pname == ''v8'') (import $TAR_DIR/shell.nix { useSeparateDerivationForV8=true; }).buildInputs" + nix-instantiate -E "builtins.filter (p: p.pname == ''v8'') (import $TAR_DIR/tools/nix/ci-shell.nix {}).buildInputs" ) V8_STORE_PATH=$(nix-store -q --outputs "$V8_DRV") echo "V8_DRV=$V8_DRV" >> "$GITHUB_OUTPUT" diff --git a/tools/nix/ci-shell.nix b/tools/nix/ci-shell.nix new file mode 100644 index 00000000000..b446c9e33d3 --- /dev/null +++ b/tools/nix/ci-shell.nix @@ -0,0 +1,29 @@ +args@{ + pkgs ? import ./pkgs.nix { }, + ... +}: +import ../../shell.nix ( + { + inherit pkgs; + useSeparateDerivationForV8 = true; + loadJSBuiltinsDynamically = false; + devTools = [ ]; + benchmarkTools = [ ]; + } + // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isDarwin ( + # Disable optional features on Darwin for coverage and faster CI. + builtins.mapAttrs (n: v: false) ( + pkgs.lib.filterAttrs (n: v: builtins.match "with[A-Z].+" n != null) ( + builtins.functionArgs (import ../../shell.nix) + ) + ) + // { + withSSL = true; # no-SSL coverage is ensured by Jenkins + extraConfigFlags = [ + "--without-inspector" + "--without-node-options" + ]; + } + ) + // args +)