From 8e0d6485e69bab447fc7c9d1b33ef41a6ff19bc0 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 26 Aug 2025 17:01:23 -0700 Subject: [PATCH 1/3] ci: remove merge-queue and consolidate CUDA base tests --- .github/workflows/base-tests.cuda.yml | 67 ++++++++++++++++++++ .github/workflows/benchmarks-execute.yml | 2 + .github/workflows/benchmarks.yml | 17 +++-- .github/workflows/build.yml | 2 + .github/workflows/cli.yml | 1 + .github/workflows/docs.yml | 1 + .github/workflows/extension-tests.cuda.yml | 2 + .github/workflows/extension-tests.yml | 2 + .github/workflows/guest-lib-tests.cuda.yml | 2 + .github/workflows/guest-lib-tests.yml | 2 + .github/workflows/lints.yml | 2 + .github/workflows/merge-queue-controller.yml | 8 ++- .github/workflows/native-compiler.yml | 2 + .github/workflows/primitives.yml | 3 +- .github/workflows/recursion.yml | 26 +------- .github/workflows/riscv.yml | 2 + .github/workflows/sdk.yml | 2 + .github/workflows/vm.yml | 3 +- 18 files changed, 111 insertions(+), 35 deletions(-) create mode 100644 .github/workflows/base-tests.cuda.yml diff --git a/.github/workflows/base-tests.cuda.yml b/.github/workflows/base-tests.cuda.yml new file mode 100644 index 0000000000..ff734f8805 --- /dev/null +++ b/.github/workflows/base-tests.cuda.yml @@ -0,0 +1,67 @@ +name: Base Tests (CUDA) +# Consolidate non-extension tests to use fewer CUDA runners + +on: + workflow_call: + push: + branches: ["main"] + pull_request: + branches: ["**"] + paths: + - "crates/circuits/**" + - "crates/vm/**" + - "extensions/native/compiler/**" + - "extensions/native/recursion/**" + - "Cargo.toml" + - ".github/workflows/recursion.yml" + - ".github/workflows/vm.yml" + +concurrency: + group: ${{ github.workflow_ref }}-base-tests-cuda-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +env: + CARGO_TERM_COLOR: always + OPENVM_FAST_TEST: "1" + +jobs: + tests-cuda: + runs-on: + - runs-on=${{ github.run_id }}-base-tests-cuda-${{ github.run_attempt }}/runner=test-gpu-nvidia + + steps: + - uses: runs-on/action@v2 + - uses: actions/checkout@v5 + - run: | # avoid cross-device link error + rustup component remove clippy || true + rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - uses: taiki-e/install-action@nextest + + - name: Check CUDA status and set environment variables + run: | + nvcc --version + echo "NEXTEST_ARGS=cuda --features parallel,cuda,touchemall" >> $GITHUB_ENV + + - name: Run tests for primitives + working-directory: crates/circuits/primitives + run: | + cargo nextest run ${{ env.NEXTEST_ARGS }} + + - name: Run tests for poseidon2-air + working-directory: crates/circuits/poseidon2-air + run: | + cargo nextest run ${{ env.NEXTEST_ARGS }} + + - name: Run vm crate tests + working-directory: crates/vm + run: | + cargo nextest run ${{ env.NEXTEST_ARGS }} + + - name: Run recursion crate tests + working-directory: extensions/native/recursion + run: | + cargo nextest run --features cuda diff --git a/.github/workflows/benchmarks-execute.yml b/.github/workflows/benchmarks-execute.yml index 9dfc26630c..c574688e74 100644 --- a/.github/workflows/benchmarks-execute.yml +++ b/.github/workflows/benchmarks-execute.yml @@ -2,6 +2,8 @@ name: "Execution benchmarks" on: workflow_call: + push: + branches: ["main"] pull_request: types: [opened, synchronize, reopened, labeled] branches: ["**"] diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 275d1163d0..bd7af5750b 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -9,17 +9,22 @@ on: type: boolean default: false push: - branches: ["feat/new-execution"] + branches: ["main"] + paths: + - "benchmarks/prove/**" + - "benchmarks/guest/**" + - "crates/**" + - "extensions/**" + - ".github/workflows/benchmark-call.yml" + - ".github/workflows/benchmarks.yml" + - "Cargo.toml" pull_request: types: [opened, synchronize, reopened, labeled] branches: ["**"] paths: - "benchmarks/prove/**" - - "crates/circuits/**" - - "crates/toolchain/**" - - "crates/prof/**" - - "crates/sdk/**" - - "crates/vm/**" + - "benchmarks/guest/**" + - "crates/**" - "extensions/**" - ".github/workflows/benchmark-call.yml" - ".github/workflows/benchmarks.yml" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3fdaf21246..cf3f227b67 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,8 @@ name: Build Workspace on: + push: + branches: ["main"] pull_request: branches: ["**"] workflow_call: diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index ae87480045..c52e7b97af 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -2,6 +2,7 @@ name: OpenVM CLI Tests on: push: + branches: ["main"] tags: ["v*"] pull_request: branches: ["**"] diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8f4f55fb64..07c03dbc12 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,6 +3,7 @@ name: Build and Serve Crate Docs on: workflow_call: push: + branches: ["main"] tags: - v*.*.* pull_request: diff --git a/.github/workflows/extension-tests.cuda.yml b/.github/workflows/extension-tests.cuda.yml index 6d6c7078fb..6a18131864 100644 --- a/.github/workflows/extension-tests.cuda.yml +++ b/.github/workflows/extension-tests.cuda.yml @@ -2,6 +2,8 @@ name: Extension Tests (CUDA) on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/extension-tests.yml b/.github/workflows/extension-tests.yml index 04d38f98e7..4fbb445877 100644 --- a/.github/workflows/extension-tests.yml +++ b/.github/workflows/extension-tests.yml @@ -2,6 +2,8 @@ name: Extension Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/guest-lib-tests.cuda.yml b/.github/workflows/guest-lib-tests.cuda.yml index a2ed2e3e59..6ba62be22f 100644 --- a/.github/workflows/guest-lib-tests.cuda.yml +++ b/.github/workflows/guest-lib-tests.cuda.yml @@ -2,6 +2,8 @@ name: Guest Library Tests (CUDA) on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/guest-lib-tests.yml b/.github/workflows/guest-lib-tests.yml index 7800849eb5..4f5394e15d 100644 --- a/.github/workflows/guest-lib-tests.yml +++ b/.github/workflows/guest-lib-tests.yml @@ -2,6 +2,8 @@ name: Guest Library Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml index 87636e42cd..e814264a5d 100644 --- a/.github/workflows/lints.yml +++ b/.github/workflows/lints.yml @@ -1,6 +1,8 @@ name: Lint Workspace on: + push: + branches: ["main"] pull_request: branches: ["**"] workflow_call: diff --git a/.github/workflows/merge-queue-controller.yml b/.github/workflows/merge-queue-controller.yml index 778bb6d2dd..0a0f548912 100644 --- a/.github/workflows/merge-queue-controller.yml +++ b/.github/workflows/merge-queue-controller.yml @@ -1,9 +1,11 @@ name: Merge Queue Controller on: - merge_group: - pull_request: - types: [opened, synchronize, reopened] + # NOTE[jpw]: this workflow is currently disabled and not meant to be used + workflow_dispatch + # merge_group: + # pull_request: + # types: [opened, synchronize, reopened] permissions: contents: write diff --git a/.github/workflows/native-compiler.yml b/.github/workflows/native-compiler.yml index a6a9711d79..aac26b289b 100644 --- a/.github/workflows/native-compiler.yml +++ b/.github/workflows/native-compiler.yml @@ -2,6 +2,8 @@ name: Native Compiler Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/primitives.yml b/.github/workflows/primitives.yml index a5d6a0c5bc..17f137b269 100644 --- a/.github/workflows/primitives.yml +++ b/.github/workflows/primitives.yml @@ -2,6 +2,8 @@ name: Primitives Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: @@ -26,7 +28,6 @@ jobs: matrix: platform: - { runner: "64cpu-linux-arm64", image: "ubuntu24-full-arm64" } - - { runner: "test-gpu-nvidia", image: "ubuntu24-gpu-x64" } runs-on: - runs-on=${{ github.run_id }}-primitives-${{ github.run_attempt }}-${{ strategy.job-index }}/runner=${{ matrix.platform.runner }}/image=${{ matrix.platform.image }}/extras=s3-cache diff --git a/.github/workflows/recursion.yml b/.github/workflows/recursion.yml index 2a57b43c13..360f292a37 100644 --- a/.github/workflows/recursion.yml +++ b/.github/workflows/recursion.yml @@ -2,6 +2,8 @@ name: STARK Recursion Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: @@ -45,27 +47,3 @@ jobs: working-directory: crates/continuations run: | cargo nextest run --no-tests=pass - - tests-cuda: - runs-on: - - runs-on=${{ github.run_id }}-cuda - - runner=test-gpu-nvidia - - image=ubuntu24-gpu-x64 - - extras=s3-cache - - steps: - - uses: runs-on/action@v2 - - uses: actions/checkout@v5 - - run: | # avoid cross-device link error - rustup component remove clippy || true - rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - uses: taiki-e/install-action@nextest - - - name: Run recursion crate tests - working-directory: extensions/native/recursion - run: | - cargo nextest run --features cuda diff --git a/.github/workflows/riscv.yml b/.github/workflows/riscv.yml index 726059c622..420e8002f6 100644 --- a/.github/workflows/riscv.yml +++ b/.github/workflows/riscv.yml @@ -2,6 +2,8 @@ name: RISC-V Test Vectors on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index 8b447c9973..a8ba37575b 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -2,6 +2,8 @@ name: OpenVM SDK Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: diff --git a/.github/workflows/vm.yml b/.github/workflows/vm.yml index 06258f47d8..21ce2ee7ba 100644 --- a/.github/workflows/vm.yml +++ b/.github/workflows/vm.yml @@ -2,6 +2,8 @@ name: VM STARK and Compiler Tests on: workflow_call: + push: + branches: ["main"] pull_request: branches: ["**"] paths: @@ -24,7 +26,6 @@ jobs: matrix: platform: - { runner: "64cpu-linux-arm64", image: "ubuntu24-full-arm64" } - - { runner: "test-gpu-nvidia", image: "ubuntu24-gpu-x64" } runs-on: - runs-on=${{ github.run_id }}-vm-tests-${{ github.run_attempt }}-${{ strategy.job-index }}/runner=${{ matrix.platform.runner }}/image=${{ matrix.platform.image }}/extras=s3-cache From ae17da720b0237e426f8394dd3f6a8f9baa57e65 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 26 Aug 2025 17:06:00 -0700 Subject: [PATCH 2/3] Update .github/workflows/merge-queue-controller.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/merge-queue-controller.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/merge-queue-controller.yml b/.github/workflows/merge-queue-controller.yml index 0a0f548912..ccf848ef88 100644 --- a/.github/workflows/merge-queue-controller.yml +++ b/.github/workflows/merge-queue-controller.yml @@ -2,7 +2,7 @@ name: Merge Queue Controller on: # NOTE[jpw]: this workflow is currently disabled and not meant to be used - workflow_dispatch + workflow_dispatch: # merge_group: # pull_request: # types: [opened, synchronize, reopened] From ce0f8aa25359bf58da78b21bdf1deca9f4d31fb3 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <31040440+jonathanpwang@users.noreply.github.com> Date: Tue, 26 Aug 2025 17:06:51 -0700 Subject: [PATCH 3/3] chore: update path filter --- .github/workflows/base-tests.cuda.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/base-tests.cuda.yml b/.github/workflows/base-tests.cuda.yml index ff734f8805..68b5c401cc 100644 --- a/.github/workflows/base-tests.cuda.yml +++ b/.github/workflows/base-tests.cuda.yml @@ -13,8 +13,7 @@ on: - "extensions/native/compiler/**" - "extensions/native/recursion/**" - "Cargo.toml" - - ".github/workflows/recursion.yml" - - ".github/workflows/vm.yml" + - ".github/workflows/base-tests.cuda.yml" concurrency: group: ${{ github.workflow_ref }}-base-tests-cuda-${{ github.event.pull_request.number || github.sha }}