From f7af816ab415dcf6da6a834dbd4269db486388ef Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 23 Oct 2026 04:49:52 -0700 Subject: [PATCH] ci: cancel superseded workflow runs on PR pushes (#11979) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: cancel superseded workflow runs on PR pushes PR-triggered workflows without a concurrency group keep running (and holding runner slots) after a force-push or quick follow-up commit supersedes them. Add the same group/cancel-in-progress block the go workflow already uses, keyed on head_ref, to the remaining PR workflows. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * ci: key concurrency groups on PR number or ref, not head_ref github.head_ref is empty on tag pushes and manual runs (every run then shares one group and cancels the last) and collides across forks when two PRs share a branch name. pull_request.number is unique per PR; github.ref covers push/tag/dispatch. Applied to all workflows using the pattern, including pre-existing ones. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * ci: restrict cancel-in-progress to PR and branch-push runs * ci: serialize container_latest manual runs by destination tag Two workflow_dispatch runs sharing an image_tag could otherwise build concurrently: their per-arch images publish to the same platform tags, so one run's create-manifest job can combine platforms from different source refs. Group dispatch runs by the destination tag (with cancel-in-progress already disabled for non-PR/non-branch events) so same-tag publishes queue instead of interleaving. * ci: serialize manual publish runs by destination tag in remaining container workflows * ci: group foundationdb release dispatch runs by release tag A manual run now shares the tag-push concurrency group for the same release, so a re-publish of a tag queues behind (or ahead of) the push run instead of racing it on the same image tag. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * ci: serialize foundationdb_version dispatch runs by destination tag Two manual runs resolving to the same docker tag now share a concurrency group (explicit image_tag, else the computed foundationdb__seaweedfs_ default), so they queue instead of racing pushes to the same tag. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * ci: drop unsupported toLower() from foundationdb_version concurrency group * ci: key rocksdb_version dispatch group on its published tag * ci: queue publish runs via turnstyle instead of cancel-free shared groups * Revert "ci: queue publish runs via turnstyle instead of cancel-free shared groups" This reverts commit 039148f8d59a7711bf9bddc7dcb2b2e95d328189. * ci: queue same-tag publish runs instead of replacing the pending one Dispatch/tag-only workflows can never cancel in progress, so opt their concurrency groups into queue: max — up to 100 same-tag publishes wait in line rather than each new dispatch cancelling the pending one. --------- Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/codespell.yml | 4 ++++ .github/workflows/container_dev.yml | 4 ++++ .github/workflows/container_foundationdb_version.yml | 4 ++++ .github/workflows/container_latest.yml | 5 +++++ .github/workflows/container_release_foundationdb.yml | 5 +++++ .github/workflows/container_rocksdb_version.yml | 5 +++++ .github/workflows/depsreview.yml | 4 ++++ .github/workflows/e2e.yml | 4 ++-- .github/workflows/ec-integration-tests.yml | 4 ++++ .github/workflows/fuse-dlm-integration.yml | 4 ++-- .github/workflows/fuse-failover.yml | 4 ++-- .github/workflows/fuse-integration.yml | 4 ++-- .github/workflows/fuse-p2p-integration.yml | 4 ++-- .github/workflows/go.yml | 4 ++-- .github/workflows/helm_ci.yml | 4 ++++ .github/workflows/java_integration_tests.yml | 4 ++++ .github/workflows/java_unit_tests.yml | 4 ++++ .github/workflows/kafka-quicktest.yml | 4 ++-- .github/workflows/kafka-tests.yml | 4 ++-- .github/workflows/kms-tests.yml | 4 ++-- .github/workflows/master-cold-start-tests.yml | 4 ++-- .github/workflows/metadata-subscribe-tests.yml | 4 ++-- .github/workflows/mount-benchmark.yml | 4 ++-- .github/workflows/mount-windows-conformance.yml | 4 ++-- .github/workflows/mount-windows.yml | 4 ++-- .github/workflows/multi-master-tests.yml | 4 ++-- .github/workflows/performance.yml | 4 ++-- .github/workflows/plugin-workers.yml | 4 ++++ .github/workflows/postgres-tests.yml | 4 ++-- .github/workflows/rust-volume-server-tests.yml | 4 ++-- .github/workflows/rust-worker-tests.yml | 4 ++-- .github/workflows/s3-etag-acl-tests.yml | 4 ++-- .github/workflows/s3-example-integration-tests.yml | 4 ++-- .github/workflows/s3-filer-group-tests.yml | 4 ++-- .github/workflows/s3-go-tests.yml | 4 ++-- .github/workflows/s3-iam-tests.yml | 4 ++-- .github/workflows/s3-keycloak-tests.yml | 4 ++-- .github/workflows/s3-mutation-regression-tests.yml | 4 ++-- .github/workflows/s3-parquet-tests.yml | 4 ++++ .github/workflows/s3-policy-tests.yml | 4 ++-- .github/workflows/s3-proxy-signature-tests.yml | 4 ++-- .github/workflows/s3-sdk-v2-routing-tests.yml | 4 ++-- .github/workflows/s3-spark-tests.yml | 4 ++-- .github/workflows/s3-sse-tests.yml | 4 ++-- .github/workflows/s3-tables-tests.yml | 4 ++++ .github/workflows/s3tests.yml | 4 ++-- .github/workflows/sftp-tests.yml | 4 ++-- .github/workflows/spark-integration-tests.yml | 4 ++++ .github/workflows/star_history.yml | 9 ++++----- .github/workflows/telemetry-integration.yml | 4 ++++ .github/workflows/terraform_ci.yml | 4 ++++ .github/workflows/test-s3-over-https-using-awscli.yml | 4 ++++ .github/workflows/tls-rotation-tests.yml | 4 ++++ .github/workflows/tus-tests.yml | 4 ++-- .github/workflows/vacuum-integration-tests.yml | 4 ++++ .github/workflows/volume-server-integration-tests.yml | 4 ++-- 57 files changed, 159 insertions(+), 77 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d8545097d0..edc2af3c98 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -9,8 +9,8 @@ on: - '.github/workflows/codeql.yml' concurrency: - group: ${{ github.head_ref }}/codeql - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} jobs: CodeQL-Build: diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 9c4d99a79e..a7be2ead3b 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -8,6 +8,10 @@ on: pull_request: branches: [master] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/container_dev.yml b/.github/workflows/container_dev.yml index f20820a59f..f5d880a8ec 100644 --- a/.github/workflows/container_dev.yml +++ b/.github/workflows/container_dev.yml @@ -13,6 +13,10 @@ on: - 'go.sum' - '.github/workflows/container_dev.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/container_foundationdb_version.yml b/.github/workflows/container_foundationdb_version.yml index 6fa0149b76..6903dcf2c0 100644 --- a/.github/workflows/container_foundationdb_version.yml +++ b/.github/workflows/container_foundationdb_version.yml @@ -24,6 +24,10 @@ on: required: false default: '' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.event.inputs.image_tag || format('foundationdb_{0}_seaweedfs_{1}', github.event.inputs.fdb_version || '7.4.5', github.event.inputs.seaweedfs_ref || github.ref_name) }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/container_latest.yml b/.github/workflows/container_latest.yml index 7a47628824..3d99baaf24 100644 --- a/.github/workflows/container_latest.yml +++ b/.github/workflows/container_latest.yml @@ -30,6 +30,11 @@ on: type: boolean default: false +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.event.inputs.image_tag || github.run_id }} + cancel-in-progress: false + queue: max + permissions: contents: read security-events: write diff --git a/.github/workflows/container_release_foundationdb.yml b/.github/workflows/container_release_foundationdb.yml index bf1270b0a8..2050d99604 100644 --- a/.github/workflows/container_release_foundationdb.yml +++ b/.github/workflows/container_release_foundationdb.yml @@ -11,6 +11,11 @@ on: required: true default: '' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || format('refs/tags/{0}', github.event.inputs.release_tag) || github.run_id }} + cancel-in-progress: false + queue: max + permissions: contents: read diff --git a/.github/workflows/container_rocksdb_version.yml b/.github/workflows/container_rocksdb_version.yml index 89b4e82049..f06eb500f4 100644 --- a/.github/workflows/container_rocksdb_version.yml +++ b/.github/workflows/container_rocksdb_version.yml @@ -16,6 +16,11 @@ on: required: false default: '' +concurrency: + group: ${{ github.workflow }}-${{ github.event.inputs.image_tag || format('rocksdb_{0}_seaweedfs_{1}', github.event.inputs.rocksdb_version, github.event.inputs.seaweedfs_ref) }} + cancel-in-progress: false + queue: max + permissions: contents: read diff --git a/.github/workflows/depsreview.yml b/.github/workflows/depsreview.yml index e4338c240a..0ba5dbcd2c 100644 --- a/.github/workflows/depsreview.yml +++ b/.github/workflows/depsreview.yml @@ -1,6 +1,10 @@ name: 'Dependency Review' on: [pull_request] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 0e58880119..ef5daf28bd 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -19,8 +19,8 @@ on: - '.github/workflows/e2e.yml' concurrency: - group: ${{ github.head_ref }}/e2e - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/ec-integration-tests.yml b/.github/workflows/ec-integration-tests.yml index e078e01e6c..ec26d446eb 100644 --- a/.github/workflows/ec-integration-tests.yml +++ b/.github/workflows/ec-integration-tests.yml @@ -18,6 +18,10 @@ on: - 'go.sum' - '.github/workflows/ec-integration-tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/fuse-dlm-integration.yml b/.github/workflows/fuse-dlm-integration.yml index 47a27cc199..f4a7931d8b 100644 --- a/.github/workflows/fuse-dlm-integration.yml +++ b/.github/workflows/fuse-dlm-integration.yml @@ -19,8 +19,8 @@ on: - '.github/actions/fix-fusermount-setuid/**' concurrency: - group: ${{ github.head_ref || github.ref }}/fuse-dlm-integration - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/fuse-failover.yml b/.github/workflows/fuse-failover.yml index c11ca3e2f1..e73d588ba4 100644 --- a/.github/workflows/fuse-failover.yml +++ b/.github/workflows/fuse-failover.yml @@ -24,8 +24,8 @@ on: - '.github/actions/fix-fusermount-setuid/**' concurrency: - group: ${{ github.head_ref || github.ref }}/fuse-failover - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/fuse-integration.yml b/.github/workflows/fuse-integration.yml index 3b23cb2228..8482eb287d 100644 --- a/.github/workflows/fuse-integration.yml +++ b/.github/workflows/fuse-integration.yml @@ -17,8 +17,8 @@ on: - '.github/actions/fix-fusermount-setuid/**' concurrency: - group: ${{ github.head_ref }}/fuse-integration - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/fuse-p2p-integration.yml b/.github/workflows/fuse-p2p-integration.yml index 28771e11a9..8cb5f2eca7 100644 --- a/.github/workflows/fuse-p2p-integration.yml +++ b/.github/workflows/fuse-p2p-integration.yml @@ -25,8 +25,8 @@ on: - '.github/actions/fix-fusermount-setuid/**' concurrency: - group: ${{ github.head_ref || github.ref }}/fuse-p2p-integration - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index b2e5b52979..ffffaee697 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,8 +17,8 @@ on: - '.github/workflows/go.yml' concurrency: - group: ${{ github.head_ref }}/go - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/helm_ci.yml b/.github/workflows/helm_ci.yml index ce0ecf916b..0a75617d79 100644 --- a/.github/workflows/helm_ci.yml +++ b/.github/workflows/helm_ci.yml @@ -8,6 +8,10 @@ on: branches: [ master ] paths: ['k8s/**', '.github/workflows/helm_ci.yml', '.github/scripts/helm_jwt_keys.py'] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/java_integration_tests.yml b/.github/workflows/java_integration_tests.yml index 075df5f857..9dc3461c82 100644 --- a/.github/workflows/java_integration_tests.yml +++ b/.github/workflows/java_integration_tests.yml @@ -14,6 +14,10 @@ on: - 'weed/**' - '.github/workflows/java_integration_tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + jobs: test: name: Java Integration Tests diff --git a/.github/workflows/java_unit_tests.yml b/.github/workflows/java_unit_tests.yml index 753d1708e8..c34f49b687 100644 --- a/.github/workflows/java_unit_tests.yml +++ b/.github/workflows/java_unit_tests.yml @@ -12,6 +12,10 @@ on: - 'other/java/**' - '.github/workflows/java_unit_tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + jobs: test: name: Java Unit Tests diff --git a/.github/workflows/kafka-quicktest.yml b/.github/workflows/kafka-quicktest.yml index c18a87048b..165028635a 100644 --- a/.github/workflows/kafka-quicktest.yml +++ b/.github/workflows/kafka-quicktest.yml @@ -24,8 +24,8 @@ on: workflow_dispatch: # Allow manual trigger concurrency: - group: ${{ github.head_ref }}/kafka-quicktest - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/kafka-tests.yml b/.github/workflows/kafka-tests.yml index 7a40ee3583..c0e15cee89 100644 --- a/.github/workflows/kafka-tests.yml +++ b/.github/workflows/kafka-tests.yml @@ -23,8 +23,8 @@ on: - '.github/workflows/kafka-tests.yml' concurrency: - group: ${{ github.head_ref }}/kafka-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} # Force different runners for better isolation env: diff --git a/.github/workflows/kms-tests.yml b/.github/workflows/kms-tests.yml index 3c997fd523..6e020f0dea 100644 --- a/.github/workflows/kms-tests.yml +++ b/.github/workflows/kms-tests.yml @@ -19,8 +19,8 @@ on: - 'test/kms/**' concurrency: - group: ${{ github.head_ref || github.ref }}-kms-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/master-cold-start-tests.yml b/.github/workflows/master-cold-start-tests.yml index bd0ed72243..bd983c7c84 100644 --- a/.github/workflows/master-cold-start-tests.yml +++ b/.github/workflows/master-cold-start-tests.yml @@ -21,8 +21,8 @@ on: - '.github/workflows/master-cold-start-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/master-cold-start-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/metadata-subscribe-tests.yml b/.github/workflows/metadata-subscribe-tests.yml index b47c16b9cd..e674986b0d 100644 --- a/.github/workflows/metadata-subscribe-tests.yml +++ b/.github/workflows/metadata-subscribe-tests.yml @@ -25,8 +25,8 @@ on: - '.github/workflows/metadata-subscribe-tests.yml' concurrency: - group: ${{ github.head_ref }}/metadata-subscribe-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/mount-benchmark.yml b/.github/workflows/mount-benchmark.yml index 90310ee6cf..52c7dcb49d 100644 --- a/.github/workflows/mount-benchmark.yml +++ b/.github/workflows/mount-benchmark.yml @@ -10,8 +10,8 @@ on: branches: [ 'winfsp-bench**' ] concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/mount-windows-conformance.yml b/.github/workflows/mount-windows-conformance.yml index 6d490c5d8a..c9aab26a02 100644 --- a/.github/workflows/mount-windows-conformance.yml +++ b/.github/workflows/mount-windows-conformance.yml @@ -24,8 +24,8 @@ on: - '.github/workflows/mount-windows-conformance.yml' concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/mount-windows.yml b/.github/workflows/mount-windows.yml index 91f61d8093..18cac2773a 100644 --- a/.github/workflows/mount-windows.yml +++ b/.github/workflows/mount-windows.yml @@ -24,8 +24,8 @@ on: - '.github/workflows/mount-windows.yml' concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/multi-master-tests.yml b/.github/workflows/multi-master-tests.yml index 2e0cfe8d95..b42d507f09 100644 --- a/.github/workflows/multi-master-tests.yml +++ b/.github/workflows/multi-master-tests.yml @@ -21,8 +21,8 @@ on: - '.github/workflows/multi-master-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/multi-master-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 95750f6891..8dd438382c 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -45,8 +45,8 @@ on: type: string concurrency: - group: ${{ github.head_ref || github.ref }}/performance - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/plugin-workers.yml b/.github/workflows/plugin-workers.yml index b3f10551c4..94fb1fbf60 100644 --- a/.github/workflows/plugin-workers.yml +++ b/.github/workflows/plugin-workers.yml @@ -18,6 +18,10 @@ on: - 'go.sum' - '.github/workflows/plugin-workers.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/postgres-tests.yml b/.github/workflows/postgres-tests.yml index a0369b134e..d3eff2fe15 100644 --- a/.github/workflows/postgres-tests.yml +++ b/.github/workflows/postgres-tests.yml @@ -23,8 +23,8 @@ on: - '.github/workflows/postgres-tests.yml' concurrency: - group: ${{ github.head_ref }}/postgres-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/rust-volume-server-tests.yml b/.github/workflows/rust-volume-server-tests.yml index fd68db1a5d..b88a245876 100644 --- a/.github/workflows/rust-volume-server-tests.yml +++ b/.github/workflows/rust-volume-server-tests.yml @@ -21,8 +21,8 @@ on: - '.github/workflows/rust-volume-server-tests.yml' concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/rust-worker-tests.yml b/.github/workflows/rust-worker-tests.yml index d2fde3ed0d..66510cf101 100644 --- a/.github/workflows/rust-worker-tests.yml +++ b/.github/workflows/rust-worker-tests.yml @@ -17,8 +17,8 @@ on: - '.github/workflows/rust-worker-tests.yml' concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-etag-acl-tests.yml b/.github/workflows/s3-etag-acl-tests.yml index 12425f6f70..13fb6cffb9 100644 --- a/.github/workflows/s3-etag-acl-tests.yml +++ b/.github/workflows/s3-etag-acl-tests.yml @@ -21,8 +21,8 @@ on: - '.github/workflows/s3-etag-acl-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/s3-etag-acl-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-example-integration-tests.yml b/.github/workflows/s3-example-integration-tests.yml index 4e39c3bc07..1765b2f818 100644 --- a/.github/workflows/s3-example-integration-tests.yml +++ b/.github/workflows/s3-example-integration-tests.yml @@ -13,8 +13,8 @@ on: - '.github/workflows/s3-example-integration-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-integration-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-filer-group-tests.yml b/.github/workflows/s3-filer-group-tests.yml index bda1ac2bca..2fcfc8e692 100644 --- a/.github/workflows/s3-filer-group-tests.yml +++ b/.github/workflows/s3-filer-group-tests.yml @@ -12,8 +12,8 @@ on: - '.github/workflows/s3-filer-group-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-filer-group-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-go-tests.yml b/.github/workflows/s3-go-tests.yml index 3a5c07395b..168d75efc3 100644 --- a/.github/workflows/s3-go-tests.yml +++ b/.github/workflows/s3-go-tests.yml @@ -12,8 +12,8 @@ on: - '.github/workflows/s3-go-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-go-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-iam-tests.yml b/.github/workflows/s3-iam-tests.yml index 121f835083..5bf89d7e70 100644 --- a/.github/workflows/s3-iam-tests.yml +++ b/.github/workflows/s3-iam-tests.yml @@ -20,8 +20,8 @@ on: - '.github/workflows/s3-iam-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-iam-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-keycloak-tests.yml b/.github/workflows/s3-keycloak-tests.yml index d2677431c1..a5a34d45f3 100644 --- a/.github/workflows/s3-keycloak-tests.yml +++ b/.github/workflows/s3-keycloak-tests.yml @@ -16,8 +16,8 @@ on: - '.github/workflows/s3-keycloak-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-keycloak-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-mutation-regression-tests.yml b/.github/workflows/s3-mutation-regression-tests.yml index acf09a8f27..0f30ef4edb 100644 --- a/.github/workflows/s3-mutation-regression-tests.yml +++ b/.github/workflows/s3-mutation-regression-tests.yml @@ -12,8 +12,8 @@ on: - '.github/workflows/s3-mutation-regression-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-mutation-regression-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-parquet-tests.yml b/.github/workflows/s3-parquet-tests.yml index b86c3869e4..20403a533d 100644 --- a/.github/workflows/s3-parquet-tests.yml +++ b/.github/workflows/s3-parquet-tests.yml @@ -23,6 +23,10 @@ env: S3_ENDPOINT_URL: http://localhost:8333 BUCKET_NAME: test-parquet-bucket +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + jobs: parquet-integration-tests: name: PyArrow Parquet Tests (Python ${{ matrix.python-version }}) diff --git a/.github/workflows/s3-policy-tests.yml b/.github/workflows/s3-policy-tests.yml index 7bb900c150..99c1949b18 100644 --- a/.github/workflows/s3-policy-tests.yml +++ b/.github/workflows/s3-policy-tests.yml @@ -24,8 +24,8 @@ on: - '.github/workflows/s3-policy-tests.yml' concurrency: - group: ${{ github.head_ref }}/s3-policy-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-proxy-signature-tests.yml b/.github/workflows/s3-proxy-signature-tests.yml index a8cc6c3679..40756e0982 100644 --- a/.github/workflows/s3-proxy-signature-tests.yml +++ b/.github/workflows/s3-proxy-signature-tests.yml @@ -21,8 +21,8 @@ on: - '.github/workflows/s3-proxy-signature-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/s3-proxy-signature-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-sdk-v2-routing-tests.yml b/.github/workflows/s3-sdk-v2-routing-tests.yml index e63528e145..477c5ef7fd 100644 --- a/.github/workflows/s3-sdk-v2-routing-tests.yml +++ b/.github/workflows/s3-sdk-v2-routing-tests.yml @@ -15,8 +15,8 @@ on: - '.github/workflows/s3-sdk-v2-routing-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/s3-sdk-v2-routing-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-spark-tests.yml b/.github/workflows/s3-spark-tests.yml index c8682992de..b6e7580a8c 100644 --- a/.github/workflows/s3-spark-tests.yml +++ b/.github/workflows/s3-spark-tests.yml @@ -11,8 +11,8 @@ on: workflow_dispatch: concurrency: - group: ${{ github.head_ref }}/s3-spark-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-sse-tests.yml b/.github/workflows/s3-sse-tests.yml index d1e2102203..9dfe3f8758 100644 --- a/.github/workflows/s3-sse-tests.yml +++ b/.github/workflows/s3-sse-tests.yml @@ -23,8 +23,8 @@ on: - 'test/s3/sse/**' concurrency: - group: ${{ github.head_ref }}/s3-sse-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/s3-tables-tests.yml b/.github/workflows/s3-tables-tests.yml index 19c1395fe6..275098d960 100644 --- a/.github/workflows/s3-tables-tests.yml +++ b/.github/workflows/s3-tables-tests.yml @@ -12,6 +12,10 @@ on: - 'go.sum' - '.github/workflows/s3-tables-tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/s3tests.yml b/.github/workflows/s3tests.yml index 7d481a3f63..353009c4ce 100644 --- a/.github/workflows/s3tests.yml +++ b/.github/workflows/s3tests.yml @@ -25,8 +25,8 @@ on: - '.github/workflows/s3tests.yml' concurrency: - group: ${{ github.head_ref }}/s3tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/sftp-tests.yml b/.github/workflows/sftp-tests.yml index 377608dcf3..9782d4e240 100644 --- a/.github/workflows/sftp-tests.yml +++ b/.github/workflows/sftp-tests.yml @@ -17,8 +17,8 @@ on: - '.github/workflows/sftp-tests.yml' concurrency: - group: ${{ github.head_ref }}/sftp-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/spark-integration-tests.yml b/.github/workflows/spark-integration-tests.yml index 9a18898e2b..20c2830e34 100644 --- a/.github/workflows/spark-integration-tests.yml +++ b/.github/workflows/spark-integration-tests.yml @@ -15,6 +15,10 @@ on: - '.github/workflows/spark-integration-tests.yml' workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read checks: write diff --git a/.github/workflows/star_history.yml b/.github/workflows/star_history.yml index 0734b27352..2c87130703 100644 --- a/.github/workflows/star_history.yml +++ b/.github/workflows/star_history.yml @@ -10,12 +10,11 @@ permissions: contents: write concurrency: - # Only one chart regeneration per branch at a time; a newer run on the same - # branch cancels an in-flight one so overlapping runs never conflict on - # note/star_history.svg during rebase. Scoped by ref so a manual run on - # another branch can't cancel the daily master update. + # Only one chart regeneration per branch at a time so overlapping runs never + # conflict on note/star_history.svg during rebase. Scoped by ref so a manual + # run on another branch can't cancel the daily master update. group: star-history-${{ github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} jobs: render: diff --git a/.github/workflows/telemetry-integration.yml b/.github/workflows/telemetry-integration.yml index 68dd2d1b79..12f99a204f 100644 --- a/.github/workflows/telemetry-integration.yml +++ b/.github/workflows/telemetry-integration.yml @@ -14,6 +14,10 @@ on: - 'weed/telemetry/**' - '.github/workflows/telemetry-integration.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/terraform_ci.yml b/.github/workflows/terraform_ci.yml index 1e905e6f0e..54ce78984d 100644 --- a/.github/workflows/terraform_ci.yml +++ b/.github/workflows/terraform_ci.yml @@ -8,6 +8,10 @@ on: branches: [ master ] paths: ['terraform/**', '.github/workflows/terraform_ci.yml'] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/test-s3-over-https-using-awscli.yml b/.github/workflows/test-s3-over-https-using-awscli.yml index 903c3bf912..fff7b25143 100644 --- a/.github/workflows/test-s3-over-https-using-awscli.yml +++ b/.github/workflows/test-s3-over-https-using-awscli.yml @@ -27,6 +27,10 @@ defaults: run: working-directory: weed +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + jobs: awscli-tests: runs-on: ubuntu-latest diff --git a/.github/workflows/tls-rotation-tests.yml b/.github/workflows/tls-rotation-tests.yml index ce4ecc99d2..b0af119c13 100644 --- a/.github/workflows/tls-rotation-tests.yml +++ b/.github/workflows/tls-rotation-tests.yml @@ -18,6 +18,10 @@ on: - 'go.sum' - '.github/workflows/tls-rotation-tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/tus-tests.yml b/.github/workflows/tus-tests.yml index 9e7f4e1c1f..eadec31a9e 100644 --- a/.github/workflows/tus-tests.yml +++ b/.github/workflows/tus-tests.yml @@ -11,8 +11,8 @@ on: - '.github/workflows/tus-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/tus-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read diff --git a/.github/workflows/vacuum-integration-tests.yml b/.github/workflows/vacuum-integration-tests.yml index e9f2a4ce13..f5b6259a83 100644 --- a/.github/workflows/vacuum-integration-tests.yml +++ b/.github/workflows/vacuum-integration-tests.yml @@ -18,6 +18,10 @@ on: - 'go.sum' - '.github/workflows/vacuum-integration-tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} + permissions: contents: read diff --git a/.github/workflows/volume-server-integration-tests.yml b/.github/workflows/volume-server-integration-tests.yml index c1874fa198..9bea478215 100644 --- a/.github/workflows/volume-server-integration-tests.yml +++ b/.github/workflows/volume-server-integration-tests.yml @@ -21,8 +21,8 @@ on: - '.github/workflows/volume-server-integration-tests.yml' concurrency: - group: ${{ github.head_ref || github.ref }}/volume-server-integration-tests - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) }} permissions: contents: read