diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml index 3e4d45ef39..28f37ddcea 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.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.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.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." + exit 0 + fi if [[ "${{ needs.race-shard.result }}" != "success" ]]; then echo "race shards did not succeed (${{ needs.race-shard.result }})" exit 1 @@ -123,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/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/sei-db-tests.yml b/.github/workflows/sei-db-tests.yml index 46ea20585e..f4800a3c07 100644 --- a/.github/workflows/sei-db-tests.yml +++ b/.github/workflows/sei-db-tests.yml @@ -21,6 +21,9 @@ jobs: test: name: Race Detection runs-on: uci-default + # The giga-1 merge queue only runs the fast gates; every PR into giga-1 has + # 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 steps: @@ -72,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: