From a2e32907d7bbcc8b6effbc861c14973661098445 Mon Sep 17 00:00:00 2001 From: masih Date: Tue, 15 Sep 2026 14:02:19 +0000 Subject: [PATCH 1/3] Skip race, upgrade, RocksDB and integration jobs in the giga-1 merge queue --- .github/workflows/go-test.yml | 12 ++++++++++++ .github/workflows/integration-test.yml | 1 - .github/workflows/rocksdb-unit_tests.yml | 2 ++ .github/workflows/sei-db-tests.yml | 17 +++++++++++++++-- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml index 3e4d45ef39..61a30f2abf 100644 --- a/.github/workflows/go-test.yml +++ b/.github/workflows/go-test.yml @@ -23,9 +23,14 @@ jobs: # The race run fans out over the shard matrix. The shards and the upgrade # tests all roll up into the `Race Detection` job below, which is the single # check name branch protection and the merge queue require. + # + # The giga-1 merge queue only runs the fast gates: every PR into giga-1 has + # already run the shards and the upgrade tests, so both are skipped there and + # the roll-up accepts `skipped` for that queue alone. race-shard: name: Race Detection (shard ${{ matrix.shard }}) runs-on: uci-default + if: ${{ !(github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1') }} strategy: fail-fast: false matrix: @@ -71,6 +76,7 @@ jobs: upgrade-test: name: Upgrade tests runs-on: uci-default + if: ${{ !(github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1') }} env: GOFLAGS: -race -tags=ledger,test_ledger_mock steps: @@ -109,6 +115,12 @@ jobs: steps: - name: Verify race shards and upgrade tests succeeded run: | + if [[ "${{ github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1' }}" == "true" \ + && "${{ needs.race-shard.result }}" == "skipped" \ + && "${{ needs.upgrade-test.result }}" == "skipped" ]]; then + echo "Race shards and upgrade tests skipped in the giga-1 merge queue." + exit 0 + fi if [[ "${{ needs.race-shard.result }}" != "success" ]]; then echo "race shards did not succeed (${{ needs.race-shard.result }})" exit 1 diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index ce7011e0dd..e1254612e4 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -17,7 +17,6 @@ on: merge_group: branches: - main - - giga-1 - release/** concurrency: diff --git a/.github/workflows/rocksdb-unit_tests.yml b/.github/workflows/rocksdb-unit_tests.yml index 80435283db..33fccac62d 100644 --- a/.github/workflows/rocksdb-unit_tests.yml +++ b/.github/workflows/rocksdb-unit_tests.yml @@ -17,6 +17,8 @@ jobs: tests-rocksdb: name: RocksDB Tests runs-on: ubuntu-latest + # Not a required check; the giga-1 merge queue only runs the fast gates. + if: ${{ !(github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1') }} steps: - uses: actions/setup-go@v7 with: diff --git a/.github/workflows/sei-db-tests.yml b/.github/workflows/sei-db-tests.yml index 46ea20585e..d27f2a1a86 100644 --- a/.github/workflows/sei-db-tests.yml +++ b/.github/workflows/sei-db-tests.yml @@ -20,16 +20,26 @@ env: jobs: test: name: Race Detection - runs-on: uci-default + runs-on: ${{ github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1' && 'ubuntu-latest' || 'uci-default' }} + # The giga-1 merge queue only runs the fast gates; every PR into giga-1 has + # already run the race suite. `Race Detection` is a required check, so the + # job still has to report: steps are skipped individually, as in `coverage`. env: GOFLAGS: -race -tags=ledger,test_ledger_mock + SKIP_SLOW: ${{ github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1' }} steps: + - name: Check trigger + if: env.SKIP_SLOW == 'true' + run: echo 'Race detection skipped in the giga-1 merge queue' + # See: https://github.com/actions/checkout/releases/tag/v7.0.0 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 + if: env.SKIP_SLOW != 'true' with: fetch-depth: 1 - uses: actions/setup-go@v7 + if: env.SKIP_SLOW != 'true' with: go-version: ${{ env.GO_VERSION }} cache: false @@ -37,7 +47,7 @@ jobs: - name: Login to Docker Hub # See: https://github.com/docker/login-action/releases/tag/v4.2.0 uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee - if: env.DOCKERHUB_USERNAME != '' + if: env.SKIP_SLOW != 'true' && env.DOCKERHUB_USERNAME != '' env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} with: @@ -45,9 +55,11 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Download modules + if: env.SKIP_SLOW != 'true' run: go mod download - name: Go test + if: env.SKIP_SLOW != 'true' run: | go test \ -timeout=${{ env.GO_TEST_TIMEOUT }} \ @@ -58,6 +70,7 @@ jobs: # is enough to catch that; the timings it prints are not measurements. # Runs without -race, which the job-level GOFLAGS would otherwise apply. - name: Benchmark smoke + if: env.SKIP_SLOW != 'true' env: GOFLAGS: -tags=ledger,test_ledger_mock run: | From 09bb4327e2ab45ec4b5f4b1fab9414e5fe30e6af Mon Sep 17 00:00:00 2001 From: masih Date: Tue, 15 Sep 2026 14:16:50 +0000 Subject: [PATCH 2/3] Use the job-level giga-1 skip from #4178 for the Sei-DB race job --- .github/workflows/go-test.yml | 6 +++--- .github/workflows/sei-db-tests.yml | 18 ++++-------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml index 61a30f2abf..3f775aa6f3 100644 --- a/.github/workflows/go-test.yml +++ b/.github/workflows/go-test.yml @@ -30,7 +30,7 @@ jobs: race-shard: name: Race Detection (shard ${{ matrix.shard }}) runs-on: uci-default - if: ${{ !(github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1') }} + if: github.event.merge_group.base_ref != 'refs/heads/giga-1' strategy: fail-fast: false matrix: @@ -76,7 +76,7 @@ jobs: upgrade-test: name: Upgrade tests runs-on: uci-default - if: ${{ !(github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1') }} + if: github.event.merge_group.base_ref != 'refs/heads/giga-1' env: GOFLAGS: -race -tags=ledger,test_ledger_mock steps: @@ -115,7 +115,7 @@ jobs: steps: - name: Verify race shards and upgrade tests succeeded run: | - if [[ "${{ github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1' }}" == "true" \ + if [[ "${{ github.event.merge_group.base_ref }}" == "refs/heads/giga-1" \ && "${{ needs.race-shard.result }}" == "skipped" \ && "${{ needs.upgrade-test.result }}" == "skipped" ]]; then echo "Race shards and upgrade tests skipped in the giga-1 merge queue." diff --git a/.github/workflows/sei-db-tests.yml b/.github/workflows/sei-db-tests.yml index d27f2a1a86..bbc8198bb4 100644 --- a/.github/workflows/sei-db-tests.yml +++ b/.github/workflows/sei-db-tests.yml @@ -20,26 +20,19 @@ env: jobs: test: name: Race Detection - runs-on: ${{ github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1' && 'ubuntu-latest' || 'uci-default' }} + runs-on: uci-default # The giga-1 merge queue only runs the fast gates; every PR into giga-1 has - # already run the race suite. `Race Detection` is a required check, so the - # job still has to report: steps are skipped individually, as in `coverage`. + # already run this suite. A skipped job still satisfies the required check. + if: github.event.merge_group.base_ref != 'refs/heads/giga-1' env: GOFLAGS: -race -tags=ledger,test_ledger_mock - SKIP_SLOW: ${{ github.event_name == 'merge_group' && github.event.merge_group.base_ref == 'refs/heads/giga-1' }} steps: - - name: Check trigger - if: env.SKIP_SLOW == 'true' - run: echo 'Race detection skipped in the giga-1 merge queue' - # See: https://github.com/actions/checkout/releases/tag/v7.0.0 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - if: env.SKIP_SLOW != 'true' with: fetch-depth: 1 - uses: actions/setup-go@v7 - if: env.SKIP_SLOW != 'true' with: go-version: ${{ env.GO_VERSION }} cache: false @@ -47,7 +40,7 @@ jobs: - name: Login to Docker Hub # See: https://github.com/docker/login-action/releases/tag/v4.2.0 uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee - if: env.SKIP_SLOW != 'true' && env.DOCKERHUB_USERNAME != '' + if: env.DOCKERHUB_USERNAME != '' env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} with: @@ -55,11 +48,9 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Download modules - if: env.SKIP_SLOW != 'true' run: go mod download - name: Go test - if: env.SKIP_SLOW != 'true' run: | go test \ -timeout=${{ env.GO_TEST_TIMEOUT }} \ @@ -70,7 +61,6 @@ jobs: # is enough to catch that; the timings it prints are not measurements. # Runs without -race, which the job-level GOFLAGS would otherwise apply. - name: Benchmark smoke - if: env.SKIP_SLOW != 'true' env: GOFLAGS: -tags=ledger,test_ledger_mock run: | From 92573ef2e30e13e342e224c274f8d6a4d850626c Mon Sep 17 00:00:00 2001 From: masih Date: Wed, 16 Sep 2026 09:01:25 +0000 Subject: [PATCH 3/3] Correct the coverage job comment on why steps are skipped per step --- .github/workflows/go-test.yml | 4 ++-- .github/workflows/sei-db-tests.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml index 3f775aa6f3..28f37ddcea 100644 --- a/.github/workflows/go-test.yml +++ b/.github/workflows/go-test.yml @@ -135,8 +135,8 @@ jobs: name: Coverage runs-on: ${{ github.event_name == 'merge_group' && 'ubuntu-latest' || 'uci-default' }} # Skip coverage report for merge groups, since the queue is about safety check. The merge to main will run coverage anyway. - # GitHub does not support setting "Required" CI workflows for merge queue separately from PRs. If we skip the job at top - # level we then have to work around result not being present. Hence, the repeated if statements per step. + # The job runs in every merge queue (a job-level skip would also do) but logs why it is a no-op there, so the + # per-step if statements keep the "Check trigger" step as the visible reason. env: GOFLAGS: -tags=ledger,test_ledger_mock steps: diff --git a/.github/workflows/sei-db-tests.yml b/.github/workflows/sei-db-tests.yml index bbc8198bb4..f4800a3c07 100644 --- a/.github/workflows/sei-db-tests.yml +++ b/.github/workflows/sei-db-tests.yml @@ -75,8 +75,8 @@ jobs: name: Coverage runs-on: ${{ github.event_name == 'merge_group' && 'ubuntu-latest' || 'uci-default' }} # Skip coverage report for merge groups, since the queue is about safety check. The merge to main will run coverage anyway. - # GitHub does not support setting "Required" CI workflows for merge queue separately from PRs. If we skip the job at top - # level we then have to work around result not being present. Hence, the repeated if statements per step. + # The job runs in every merge queue (a job-level skip would also do) but logs why it is a no-op there, so the + # per-step if statements keep the "Check trigger" step as the visible reason. env: GOFLAGS: -tags=ledger,test_ledger_mock steps: