## Motivation and Context When two PRs are merged to main in quick succession, the Conformance Tests run for the earlier merge commit is cancelled by the run for the later one. On push events, `github.ref` is always `refs/heads/main`, so every merge to main shares the same concurrency group and `cancel-in-progress: true` cancels all but the latest run. As a result, only the last merged PR gets a conformance result. This change appends `github.sha` to the concurrency group for push events so that each merge commit runs independently. For pull_request events the SHA part is empty, keeping the existing behavior where pushing new commits to a PR cancels its superseded runs. ## How Has This Been Tested? Validated the workflow YAML syntax locally. The concurrent behavior itself can only be observed on GitHub Actions, by confirming that both Conformance Tests runs complete when two pushes land on main within a short interval. ## Breaking Changes None.
29 lines
701 B
YAML
29 lines
701 B
YAML
name: Conformance Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: conformance-${{ github.ref }}-${{ github.event_name == 'push' && github.sha || '' }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
server-conformance:
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: '4.0' # Specify the latest supported Ruby version.
|
|
bundler-cache: true
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '24' # Specify the latest Node.js version.
|
|
- run: bundle exec rake conformance
|