From 2394207b853f048ddb4a11d634b60e3ee9d3138e Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 15:04:53 +0100 Subject: [PATCH 1/5] Add GitHub Actions workflow to notify Zulip on release --- .github/workflows/zulip-notify.yaml | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/zulip-notify.yaml diff --git a/.github/workflows/zulip-notify.yaml b/.github/workflows/zulip-notify.yaml new file mode 100644 index 0000000..d8aadd2 --- /dev/null +++ b/.github/workflows/zulip-notify.yaml @@ -0,0 +1,33 @@ +name: Notify Zulip + +on: + release: + types: [released] + +jobs: + notify: + runs-on: ubuntu-24.04 + steps: + - name: Post announcement to Zulip + env: + ZULIP_BOT_EMAIL: ${{ secrets.ZULIP_BOT_EMAIL }} + ZULIP_BOT_API_KEY: ${{ secrets.ZULIP_BOT_API_KEY }} + ZULIP_SITE: ${{ secrets.ZULIP_SITE }} + REPO: ${{ github.event.repository.name }} + TAG: ${{ github.event.release.tag_name }} + RELEASE_URL: ${{ github.event.release.html_url }} + CHANGELOG: ${{ github.event.release.body }} + run: | + CONTENT=$(cat < Date: Tue, 25 Aug 2026 15:47:33 +0100 Subject: [PATCH 2/5] Remove whitespace --- .github/workflows/zulip-notify.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/zulip-notify.yaml b/.github/workflows/zulip-notify.yaml index d8aadd2..1451776 100644 --- a/.github/workflows/zulip-notify.yaml +++ b/.github/workflows/zulip-notify.yaml @@ -1,5 +1,5 @@ name: Notify Zulip - + on: release: types: [released] From 6aa7a8cdd670bce9ab8273df566e5a95061499ab Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 17:52:22 +0100 Subject: [PATCH 3/5] Update zulip-notify.yaml --- .github/workflows/zulip-notify.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/zulip-notify.yaml b/.github/workflows/zulip-notify.yaml index 1451776..98ccd51 100644 --- a/.github/workflows/zulip-notify.yaml +++ b/.github/workflows/zulip-notify.yaml @@ -29,5 +29,5 @@ jobs: -u "${ZULIP_BOT_EMAIL}:${ZULIP_BOT_API_KEY}" \ --data-urlencode type=stream \ --data-urlencode "to=announcements" \ - --data-urlencode "topic=releases" \ + --data-urlencode "topic=software releases" \ --data-urlencode "content=${CONTENT}" From 92eb201b693d6215fe9d7dbf8c6aba16da0227d4 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 22:56:58 +0100 Subject: [PATCH 4/5] Delete zulip-notify.yaml --- .github/workflows/zulip-notify.yaml | 33 ----------------------------- 1 file changed, 33 deletions(-) delete mode 100644 .github/workflows/zulip-notify.yaml diff --git a/.github/workflows/zulip-notify.yaml b/.github/workflows/zulip-notify.yaml deleted file mode 100644 index 98ccd51..0000000 --- a/.github/workflows/zulip-notify.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: Notify Zulip - -on: - release: - types: [released] - -jobs: - notify: - runs-on: ubuntu-24.04 - steps: - - name: Post announcement to Zulip - env: - ZULIP_BOT_EMAIL: ${{ secrets.ZULIP_BOT_EMAIL }} - ZULIP_BOT_API_KEY: ${{ secrets.ZULIP_BOT_API_KEY }} - ZULIP_SITE: ${{ secrets.ZULIP_SITE }} - REPO: ${{ github.event.repository.name }} - TAG: ${{ github.event.release.tag_name }} - RELEASE_URL: ${{ github.event.release.html_url }} - CHANGELOG: ${{ github.event.release.body }} - run: | - CONTENT=$(cat < Date: Tue, 25 Aug 2026 22:58:21 +0100 Subject: [PATCH 5/5] Update release.yaml --- .github/workflows/release.yaml | 40 ++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9ecedbc..07a2e08 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -111,14 +111,50 @@ jobs: needs: tag runs-on: ubuntu-24.04 steps: - - name: create release - uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2 + id: create_release + uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 with: name: v${{ github.event.inputs.version }} generate_release_notes: true tag_name: ${{ github.event.inputs.version }} + - name: fetch generated changelog + id: changelog + if: steps.create_release.outcome == 'success' + continue-on-error: true + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # generate_release_notes builds the changelog server-side, so pull + # it back down here rather than trying to reconstruct it locally. + gh release view "${{ github.event.inputs.version }}" --json body -q .body > changelog.txt + + - name: notify Zulip of release + if: steps.create_release.outcome == 'success' + continue-on-error: true + env: + ZULIP_BOT_EMAIL: ${{ secrets.ZULIP_BOT_EMAIL }} + ZULIP_BOT_API_KEY: ${{ secrets.ZULIP_BOT_API_KEY }} + ZULIP_SITE: ${{ secrets.ZULIP_SITE }} + REPO: ${{ github.event.repository.name }} + TAG: v${{ github.event.inputs.version }} + RELEASE_URL: ${{ steps.create_release.outputs.url }} + run: | + CONTENT=$(cat <