From 2787a1aa1713cbdb13fb5bc68e225212073718e0 Mon Sep 17 00:00:00 2001 From: Tim Perry Date: Fri, 12 Jun 2026 13:12:41 +0200 Subject: [PATCH] build: add QUIC CI job for PRs matching QUIC related paths This notable includes stream/iter (since they're closely related and rapidly evolving together) and ngtcp2, nghttp3 & openssl deps. Based on test-linux.yml, the main differences are simplifications: PRs only, filtered to specific paths, just one build (ARM only), no unusual characters test. Signed-off-by: Tim Perry --- .github/workflows/test-linux-quic.yml | 82 +++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/test-linux-quic.yml diff --git a/.github/workflows/test-linux-quic.yml b/.github/workflows/test-linux-quic.yml new file mode 100644 index 00000000000000..8f8bb8d1e8c2ef --- /dev/null +++ b/.github/workflows/test-linux-quic.yml @@ -0,0 +1,82 @@ +name: Test Linux (with QUIC) + +on: + workflow_dispatch: + pull_request: + paths: + - .github/workflows/test-linux-quic.yml + - configure.py + - node.gyp + - node.gypi + - deps/ngtcp2/** + - deps/nghttp3/** + - deps/openssl/** + - src/quic/** + - src/node_bob* + - lib/quic.js + - lib/http3.js + - lib/internal/quic/** + - lib/stream/iter.js + - lib/internal/streams/iter/** + - test/cctest/test_quic_* + - test/common/quic* + - test/common/quic/** + - test/parallel/*quic* + - test/parallel/test-stream-iter-* + types: [opened, synchronize, reopened, ready_for_review] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +env: + PYTHON_VERSION: '3.14' + FLAKY_TESTS: keep_retrying + CLANG_VERSION: '19' + CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19 + CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19 + SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} + SCCACHE_IDLE_TIMEOUT: '0' + RUSTC_VERSION: '1.82' + +permissions: + contents: read + +jobs: + test-quic: + if: github.event.pull_request.draft == false + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + path: node + - name: Install Clang ${{ env.CLANG_VERSION }} + uses: ./node/.github/actions/install-clang + with: + clang-version: ${{ env.CLANG_VERSION }} + - name: Install Rust ${{ env.RUSTC_VERSION }} + run: | + rustup override set "$RUSTC_VERSION" + rustup --version + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: ${{ env.PYTHON_VERSION }} + allow-prereleases: true + - name: Set up sccache + if: github.base_ref == 'main' || github.ref_name == 'main' + uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 + with: + version: v0.12.0 + - name: Environment Information + run: npx envinfo + - name: Build + working-directory: node + run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --v8-enable-temporal-support --experimental-quic" + - name: Test + working-directory: node + run: make test-ci -j1 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" + - name: Ensure running tests did not cause any change in the tree + working-directory: node + run: git add -A && git diff --name-only --exit-code --staged