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