From 33e1d7c9ccee8570739d780cce9f41a56888025d Mon Sep 17 00:00:00 2001 From: Micheal Wilkinson Date: Sat, 21 Mar 2026 00:03:26 +0000 Subject: [PATCH] fix: replace workflow step summaries --- .gitea/workflows/do-release.yml | 35 ++++++++++++++++++++++++++-- .gitea/workflows/prepare-release.yml | 18 +++++++++++++- .gitea/workflows/push-validation.yml | 23 +++++++++++++++--- changelog.md | 1 + 4 files changed, 71 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/do-release.yml b/.gitea/workflows/do-release.yml index c919fc5..b8ffbd3 100644 --- a/.gitea/workflows/do-release.yml +++ b/.gitea/workflows/do-release.yml @@ -29,6 +29,7 @@ jobs: shell: bash env: RELEASE_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SUMMARY_FILE: ${{ runner.temp }}/do-release-summary.md steps: - name: Checkout tagged revision uses: actions/checkout@v4 @@ -128,7 +129,21 @@ jobs: echo "- Tag: ${TAG_NAME}" echo "- Release notes sourced from changelog entry ${RELEASE_VERSION}." echo "- Published assets: vociferate_${RELEASE_VERSION}_linux_amd64, vociferate_${RELEASE_VERSION}_linux_arm64, checksums.txt" - } >> "$GITHUB_STEP_SUMMARY" + } >> "$SUMMARY_FILE" + + - name: Summary + if: ${{ always() }} + run: | + set -euo pipefail + + echo 'Summary' + echo + + if [[ -s "$SUMMARY_FILE" ]]; then + cat "$SUMMARY_FILE" + else + echo 'No summary generated.' + fi validate: runs-on: ubuntu-latest @@ -145,6 +160,8 @@ jobs: defaults: run: shell: bash + env: + SUMMARY_FILE: ${{ runner.temp }}/do-release-validate-summary.md steps: - name: Checkout tagged revision uses: actions/checkout@v4 @@ -211,4 +228,18 @@ jobs: echo "- Asset: ${asset_name}" echo "- Binary executed successfully via --help." echo "- --recommend failed as expected on the tagged checkout because Unreleased is empty." - } >> "$GITHUB_STEP_SUMMARY" + } >> "$SUMMARY_FILE" + + - name: Summary + if: ${{ always() }} + run: | + set -euo pipefail + + echo 'Summary' + echo + + if [[ -s "$SUMMARY_FILE" ]]; then + cat "$SUMMARY_FILE" + else + echo 'No summary generated.' + fi diff --git a/.gitea/workflows/prepare-release.yml b/.gitea/workflows/prepare-release.yml index 339f191..7e67293 100644 --- a/.gitea/workflows/prepare-release.yml +++ b/.gitea/workflows/prepare-release.yml @@ -23,6 +23,8 @@ jobs: defaults: run: shell: bash + env: + SUMMARY_FILE: ${{ runner.temp }}/prepare-release-summary.md steps: - name: Checkout uses: actions/checkout@v4 @@ -61,7 +63,21 @@ jobs: echo echo "- Tag pushed: ${tag}" echo "- Calling Do Release workflow for ${tag}." - } >> "$GITHUB_STEP_SUMMARY" + } >> "$SUMMARY_FILE" + + - name: Summary + if: ${{ always() }} + run: | + set -euo pipefail + + echo 'Summary' + echo + + if [[ -s "$SUMMARY_FILE" ]]; then + cat "$SUMMARY_FILE" + else + echo 'No summary generated.' + fi publish: needs: prepare diff --git a/.gitea/workflows/push-validation.yml b/.gitea/workflows/push-validation.yml index 13e08be..a883657 100644 --- a/.gitea/workflows/push-validation.yml +++ b/.gitea/workflows/push-validation.yml @@ -22,6 +22,7 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.ARTEFACT_BUCKET_WRITE_ACCESS_SECRET }} AWS_DEFAULT_REGION: ${{ vars.ARTEFACT_BUCKET_REGION }} AWS_EC2_METADATA_DISABLED: true + SUMMARY_FILE: ${{ runner.temp }}/push-validation-summary.md steps: - name: Checkout uses: actions/checkout@v4 @@ -112,13 +113,15 @@ jobs: - name: Add coverage summary run: | + set -euo pipefail + { echo '## Coverage' echo echo '- Total: `${{ steps.coverage.outputs.total }}%`' echo '- Report: ${{ steps.upload.outputs.report_url }}' echo '- Badge: ${{ steps.upload.outputs.badge_url }}' - } >> "$GITHUB_STEP_SUMMARY" + } >> "$SUMMARY_FILE" - name: Recommend next release tag on main pushes if: ${{ github.ref == 'refs/heads/main' }} @@ -131,7 +134,7 @@ jobs: echo '## Release Recommendation' echo echo "- Recommended next tag: \`${recommended_tag}\`" - } >> "$GITHUB_STEP_SUMMARY" + } >> "$SUMMARY_FILE" else recommendation_error="$(tr '\n' ' ' < release-recommendation.err | sed 's/[[:space:]]\+/ /g' | sed 's/^ //; s/ $//')" echo "::warning::${recommendation_error}" @@ -140,5 +143,19 @@ jobs: echo '## Release Recommendation' echo echo "- No recommended tag emitted: ${recommendation_error}" - } >> "$GITHUB_STEP_SUMMARY" + } >> "$SUMMARY_FILE" + fi + + - name: Summary + if: ${{ always() }} + run: | + set -euo pipefail + + echo 'Summary' + echo + + if [[ -s "$SUMMARY_FILE" ]]; then + cat "$SUMMARY_FILE" + else + echo 'No summary generated.' fi diff --git a/changelog.md b/changelog.md index e75bcc4..3e5ba01 100644 --- a/changelog.md +++ b/changelog.md @@ -23,6 +23,7 @@ A `### Breaking` section is used in addition to Keep a Changelog's standard sect ### Fixed - Browser-facing URLs emitted in generated changelog links, workflow summaries, and markdown now use protocol-relative `//` forms. +- Release workflows now collect summary markdown into portable temp files and print it in explicit `Summary` steps instead of relying on unsupported `GITHUB_STEP_SUMMARY` output. - Prepare now recreates the standard `Unreleased` section headers after promoting notes into a tagged release entry. - First-release recommendation remains `v1.0.0` when no prior releases exist in the changelog. - Do Release smoke validation now expects `--recommend` to fail on tagged release checkouts where `Unreleased` is intentionally empty.