A composite action: reads the release from the event file with jq, looks up the repo's Announcements category (release-map.json) and posts as release-bot. One topic per repo+tag via the topic external_id, so a re-run is a no-op. Optional Discord webhook.
1.7 KiB
1.7 KiB
actions
Shared Gitea Actions for Coffey Labs and INBUXA workflows. The instance sets
DEFAULT_ACTIONS_URL = self, so uses: coffey-labs/actions/<name>@<sha>
resolves here and nothing is fetched from GitHub implicitly.
Pin every use by full commit SHA.
checkout
- uses: coffey-labs/actions/checkout@<sha>
with:
fetch-depth: 0 # optional; default 1. 0 = all history and tags
tags: true # optional; tags with a shallow fetch
Works in any job image with a POSIX shell. Installs git with apk or apt-get
if the image has none, and clones from the runner's internal Gitea address
(CI_SERVER_INTERNAL) so CI traffic never crosses Cloudflare.
discourse-release
Announces a published release on the community forum, in the repo's
Announcements category. Add to a project repo as .gitea/workflows/announce.yml:
on:
release:
types: [published]
jobs:
announce:
runs-on: light
steps:
- uses: coffey-labs/actions/discourse-release@<sha>
with:
api-key: ${{ secrets.DISCOURSE_RELEASE_KEY }}
discord-webhook: ${{ secrets.DISCORD_RELEASE_WEBHOOK }} # optional
- The repo must be listed in
discourse-release/release-map.json, the one place that maps repos to forum categories. DISCOURSE_RELEASE_KEYis an org-level secret (coffey-labs and inbuxa) holding release-bot's key, which can only create posts.- Re-running is safe: each repo+tag gets one topic, enforced by the forum.
- Release notes are passed to the forum through
jqonly, so quotes, backticks and multi-line Markdown arrive exactly as written. - To turn it off for a repo, delete its
announce.yml; for everyone, remove the org secret.