From 1b659dcccb979f179a8477312ca14b746ab86e52 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 15:05:48 +0100 Subject: [PATCH 1/9] 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:48:38 +0100 Subject: [PATCH 2/9] 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 bae30c39e396c34c2e501868571f4f2f4ece4b8c Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 17:48:07 +0100 Subject: [PATCH 3/9] 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 a9146e370017b0b601041aabfa507f21f4679c17 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Tue, 25 Aug 2026 23:15:07 +0100 Subject: [PATCH 4/9] 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:17:53 +0100 Subject: [PATCH 5/9] Update release.yaml --- .github/workflows/release.yaml | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 829c2fa..776bf02 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -183,9 +183,46 @@ jobs: tar -czf biosim-schema-artifacts.tar.gz biosim_schema/schema/ project/ - name: create release + 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 }} files: biosim-schema-artifacts.tar.gz + + - 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: Tue, 25 Aug 2026 23:28:45 +0100 Subject: [PATCH 6/9] 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 776bf02..fbb22c0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -225,4 +225,4 @@ jobs: --data-urlencode type=stream \ --data-urlencode "to=announcement" \ --data-urlencode "topic=software releases" \ - --data-urlencode "content=${CONTENT}" \ No newline at end of file + --data-urlencode "content=${CONTENT}" From f19f65f93f0774ce34460e4a2f0c8f2baf7c0603 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Wed, 26 Aug 2026 11:55:25 +0100 Subject: [PATCH 7/9] Fix typo in Zulip API message stream name --- .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 fbb22c0..469c135 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -223,6 +223,6 @@ 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}" From 8730e2ce02dacb27cc94dbc17c155751b56d9987 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Wed, 26 Aug 2026 12:03:11 +0100 Subject: [PATCH 8/9] 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 469c135..6e3f6ff 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -184,7 +184,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 05de5bb6328095bf6aea81072e003ad9c6be33e5 Mon Sep 17 00:00:00 2001 From: James Gebbie-Rayet Date: Wed, 26 Aug 2026 16:02:58 +0100 Subject: [PATCH 9/9] Update gh release command to specify repository --- .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 6e3f6ff..cf82bfb 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -200,7 +200,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'