From 7e7955841c2a707296d11683dd86d5dd0c4d123e Mon Sep 17 00:00:00 2001 From: woksin Date: Wed, 26 Aug 2026 10:22:01 +0200 Subject: [PATCH] chore: adopt the organization reusable workflows Converts copied workflow logic to thin callers of Cratis/Workflows: release-intent gate and/or documentation-build trigger. Per-repository copies of the gate drifted apart and caused the 2026-08-25 unintended releases; the policy now lives in one place. Where this repository has never produced a workflow artifact, the cleanup-pr-artifacts workflow is removed as dead weight. --- .github/workflows/verify-semver-label.yml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/workflows/verify-semver-label.yml b/.github/workflows/verify-semver-label.yml index 2b23bca..755f30b 100644 --- a/.github/workflows/verify-semver-label.yml +++ b/.github/workflows/verify-semver-label.yml @@ -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 @@ -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