From 8b98ea0052eade37b24d485d7be43ad8c1702ae1 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 15:05:01 +0100 Subject: [PATCH 1/8] 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:55 +0100 Subject: [PATCH 2/8] 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 2832edcd61c0e43de674f6e69d5048b6bbf95c23 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 17:51:44 +0100 Subject: [PATCH 3/8] 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 ac13c30f54894b329eb359ec9f127954bb0cf110 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 23:00:45 +0100 Subject: [PATCH 4/8] 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 23:02:03 +0100 Subject: [PATCH 5/8] Update release.yaml --- .github/workflows/release.yaml | 39 +++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6aec1ba..3937ba5 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -156,12 +156,49 @@ jobs: 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 < Date: Wed, 26 Aug 2026 11:56:12 +0100 Subject: [PATCH 6/8] Fix typo in Zulip stream name from 'announcement' to 'announcements' --- .github/workflows/release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3937ba5..d38199d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -195,7 +195,7 @@ jobs: curl -sSf "${ZULIP_SITE}/api/v1/messages" \ -u "${ZULIP_BOT_EMAIL}:${ZULIP_BOT_API_KEY}" \ --data-urlencode type=stream \ - --data-urlencode "to=announcement" \ + --data-urlencode "to=announcements" \ --data-urlencode "topic=software releases" \ --data-urlencode "content=${CONTENT}" @@ -263,4 +263,4 @@ jobs: -t "$ANACONDA_API_TOKEN" \ upload "$PKG_PATH" \ --user CCPBioSim \ - --force \ No newline at end of file + --force From bb90b9e37af87a778513d8f32f82b37f579a0a7c Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Wed, 26 Aug 2026 12:01:28 +0100 Subject: [PATCH 7/8] Update GitHub Action for release to version 3.0.2 --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d38199d..7a3c8f4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -157,7 +157,7 @@ jobs: - name: create release id: create_release - uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 + uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2 with: name: v${{ github.event.inputs.version }} generate_release_notes: true From 32d4d0a3bc788f60745f8c5c6db416ebd500fca4 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Wed, 26 Aug 2026 16:02:14 +0100 Subject: [PATCH 8/8] Update release.yaml --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7a3c8f4..54b8a03 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -172,7 +172,7 @@ jobs: 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 + gh release view "${{ github.event.inputs.version }}" --repo "${{ github.repository }}" --json body -q .body > changelog.txt - name: notify Zulip of release if: steps.create_release.outcome == 'success'