Skip to content

tools: try nix-diff #312

tools: try nix-diff

tools: try nix-diff #312

Workflow file for this run

# This action uses the following secrets:
# CACHIX_AUTH_TOKEN: Write access to nodejs.cachix.org – without it, the cache is read-only.
name: Test Shared libraries
on:
pull_request:
paths-ignore:
- '**.md'
- eslint.config.mjs
- '**/eslint.config_partial.mjs'
- android-configure
- android-configure.py
- android-patches/**
- benchmarks/**
- codecov.yml
- deps/ada/**
- deps/brotli/**
- deps/cares/**
- deps/crates/**
- deps/corepack/**
- deps/googletest/**
- deps/histogram/**
- deps/icu-small/**
- deps/icu-tmp/**
- deps/llhttp/**
- deps/merve/**
- deps/nbytes/**
- deps/nghttp2/**
- deps/ngtcp2/**
- deps/openssl/*/**
- deps/simdjson/**
- deps/sqlite/**
- deps/uv/**
- deps/uvwasi/**
- deps/zlib/**
- deps/zstd/**
- doc/**
- pyproject.yml
- tsconfig.json
- test/internet/**
- tools/**
- '!tools/gyp/**'
- '!tools/nix/**'
- '!tools/v8/**'
- '!tools/v8_gypfiles/**'
- typings/**
- vcbuild.bat
- .**
- '!.github/workflows/test-shared.yml'
types: [opened, synchronize, reopened, ready_for_review]
push:
branches:
- main
- canary
- v[0-9]+.x-staging
- v[0-9]+.x
paths-ignore:
- '**.md'
- eslint.config.mjs
- '**/eslint.config_partial.mjs'
- android-configure
- android-configure.py
- android-patches/**
- benchmarks/**
- codecov.yml
- deps/ada/**
- deps/brotli/**
- deps/cares/**
- deps/crates/**
- deps/corepack/**
- deps/googletest/**
- deps/histogram/**
- deps/icu-small/**
- deps/icu-tmp/**
- deps/llhttp/**
- deps/merve/**
- deps/nbytes/**
- deps/nghttp2/**
- deps/ngtcp2/**
- deps/openssl/*/**
- deps/simdjson/**
- deps/sqlite/**
- deps/uv/**
- deps/uvwasi/**
- deps/zlib/**
- deps/zstd/**
- doc/**
- pyproject.yml
- tsconfig.json
- test/internet/**
- tools/**
- '!tools/gyp/**'
- '!tools/nix/**'
- '!tools/v8/**'
- '!tools/v8_gypfiles/**'
- typings/**
- vcbuild.bat
- .**
- '!.github/workflows/test-shared.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
FLAKY_TESTS: keep_retrying
permissions:
contents: read
jobs:
build-tarball:
if: github.event.pull_request.draft == false
strategy:
matrix:
install-nix-action: [96951a368ba55167b55f1c916f7d416bac6505fe, 616559265b40713947b9c190a8ff4b507b5df49b]
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
if: ${{ github.event_name != 'workflow_dispatch' }}
with:
persist-credentials: false
- uses: cachix/install-nix-action@96951a368ba55167b55f1c916f7d416bac6505fe # v31.10.3
if: ${{ matrix.install-nix-action == '96951a368ba55167b55f1c916f7d416bac6505fe' }}
with:
extra_nix_config: sandbox = true
- uses: cachix/install-nix-action@616559265b40713947b9c190a8ff4b507b5df49b # v31.10.3
if: ${{ matrix.install-nix-action == '616559265b40713947b9c190a8ff4b507b5df49b' }}
with:
extra_nix_config: sandbox = true
- name: Instantiate derivation
id: drv
run: |
echo "DRV=$(nix-instantiate -E 'builtins.filter (p: p.pname == "v8") (import ./shell.nix { useSeparateDerivationForV8=true; }).buildInputs')" >> "$GITHUB_OUTPUT"
- name: Upload tarball artifact
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ${{ matrix.install-nix-action }}.drv
path: ${{ steps.drv.outputs.DRV }}
nix-diff:
needs: build-tarball
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: '*.nix'
sparse-checkout-cone-mode: false
- name: Download benchmark raw results
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
pattern: '*'
merge-multiple: true
path: raw-results
- run: ls
- uses: cachix/install-nix-action@96951a368ba55167b55f1c916f7d416bac6505fe # v31.10.3
with:
extra_nix_config: sandbox = true
- name: Benchmark results
run: |
nix-shell \
-I nixpkgs=./tools/nix/pkgs.nix \
-p nix-diff \
--run 'nix-diff raw-results/*.drv'