Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 6 additions & 13 deletions .github/workflows/verify-semver-label.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
name: Verify Semver Label

# Thin caller of the organization-wide release-intent gate. The policy - which
# labels are accepted and what the errors say - lives in
# Cratis/Workflows/.github/workflows/verify-release-intent.yml. Thirty diverging
# per-repository copies of that logic are how the 2026-08-25 unintended releases
# happened; do not reintroduce logic here.
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
Expand All @@ -15,16 +20,4 @@ permissions:

jobs:
verify:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Require exactly one release disposition label
env:
LABELS: ${{ toJSON(github.event.pull_request.labels.*.name) }}
run: |
count=$(printf '%s' "$LABELS" | jq '[.[] | select(. == "major" or . == "minor" or . == "patch" or . == "no-release")] | length')
if [ "$count" -eq 1 ]; then
exit 0
fi
echo "::error::Add exactly one of major, minor, patch, or no-release."
exit 1
uses: Cratis/Workflows/.github/workflows/verify-release-intent.yml@main
Loading