diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b3b4cc..f2cdad2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,9 +15,19 @@ on: permissions: contents: read +# Only a new head commit of a pull request cancels its runs in progress +# (action `synchronize`, first attempt); runs for other actions and reruns +# wait, so that a run on the same commit never leaves a cancelled, failed +# `CI passed` (see "Cancelled runs" in `actions/gate/README.md` of +# `elixir-cloud-aai/.github`). Runs for pushes get their own group, so that +# none is dropped concurrency: - group: ci-${{ github.ref }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} + group: >- + ci-${{ github.event_name == 'push' && github.sha || github.ref }} + cancel-in-progress: >- + ${{ github.event_name == 'pull_request' + && github.event.action == 'synchronize' + && github.run_attempt == 1 }} jobs: