Browse Source

Merge pull request #298 from WildKernels/fix-release-notes

fix: release notes came out empty (_n/a_ everywhere)
James McConnell 5 days ago
parent
commit
ba08a161b4
1 changed files with 23 additions and 2 deletions
  1. 23 2
      .github/workflows/main.yml

+ 23 - 2
.github/workflows/main.yml

@@ -962,6 +962,7 @@ jobs:
     permissions:
       contents: write
     needs:
+    - resolve-sources
     - build-android12-5-10
     - build-android13-5-10
     - build-android13-5-15
@@ -1301,6 +1302,23 @@ jobs:
         if s: open(s,"a").write(output)
         PYEOF
 
+    - name: Verify release body is populated
+      run: |
+        set -euo pipefail
+        # resolve-sources outputs silently expand to empty when the job
+        # lacks it in `needs` (r20 shipped with _n/a_ everywhere). Fail
+        # fast instead of publishing thin notes.
+        if grep -q '_n/a_' release_body.md; then
+          echo "ERROR: release_body.md contains unresolved _n/a_ entries:" >&2
+          grep '_n/a_' release_body.md >&2
+          exit 1
+        fi
+        if ! grep -qE '\[`[0-9a-f]{7}`\]' release_body.md; then
+          echo "ERROR: release_body.md has no commit links" >&2
+          exit 1
+        fi
+        echo "Release body OK ($(wc -l < release_body.md) lines)"
+
     - name: Upload release notes artifact
       uses: actions/upload-artifact@v7
       with:
@@ -1434,9 +1452,12 @@ jobs:
         fi
         echo "Uploading ${#files[@]} assets one at a time..."
 
-        # The release may already exist (partial upload from a retried run).
+        # The release may already exist (partial upload from a retried run,
+        # or a concurrent run that computed the same tag). Refresh its notes
+        # so a re-run heals stale bodies instead of leaving them behind.
         if gh release view "$TAG_NAME" >/dev/null 2>&1; then
-          echo "Release $TAG_NAME already exists — uploading into it."
+          echo "Release $TAG_NAME already exists — refreshing notes and uploading into it."
+          gh release edit "$TAG_NAME" --notes-file release_body.md
         else
           create_args=(--title "$RELEASE_TITLE" --notes-file release_body.md)
           if [ "$IS_PRERELEASE" = "true" ]; then