From 963d522d7df50e48c26c1ec77c73f9157b35e2b7 Mon Sep 17 00:00:00 2001 From: Luke Hagar Date: Fri, 6 Mar 2026 12:55:49 -0600 Subject: [PATCH] Fix release workflow triggering on non-spec api-specs commits The change detection counted all api-specs commits since the last tag, but daily automated commits updating dereferenced/ and postman/ files caused unnecessary releases every weekday. Replace commit-counting with git diff scoped to idn/**/*.yaml so only actual spec changes trigger a release. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/release.yaml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1e0a1f402..4a5074e67 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -57,13 +57,21 @@ jobs: LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1) 2>/dev/null || echo "v0.0.0") TAG_DATE=$(git log -1 --format=%aI "$LATEST_TAG" 2>/dev/null || echo "1970-01-01") - SPEC_CHANGES=$(cd api-specs && git log --after="$TAG_DATE" --oneline | wc -l) + TAG_COMMIT=$(cd api-specs && git rev-list -1 --before="$TAG_DATE" HEAD 2>/dev/null || echo "") + + if [ -z "$TAG_COMMIT" ]; then + echo "Could not find api-specs commit at tag date. Proceeding to be safe." + echo "proceed=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + + SPEC_CHANGES=$(cd api-specs && git diff --name-only "$TAG_COMMIT" HEAD -- 'idn/**/*.yaml' | wc -l) if [ "$SPEC_CHANGES" -eq 0 ]; then - echo "No spec changes since $LATEST_TAG ($TAG_DATE). Skipping release." + echo "No spec file changes since $LATEST_TAG ($TAG_DATE). Skipping release." echo "proceed=false" >> "$GITHUB_OUTPUT" else - echo "Found $SPEC_CHANGES spec changes since $LATEST_TAG. Proceeding." + echo "Found $SPEC_CHANGES spec file(s) changed since $LATEST_TAG. Proceeding." echo "proceed=true" >> "$GITHUB_OUTPUT" fi