forked from unom/punktfunk
Release notes now live in the repo at docs/releases/vX.Y.Z.md, authored during the version bump (before the tag). ensure_release (gitea-release.sh + .ps1 twin) seeds the Gitea release body from that file in the create POST, so the release is born WITH its notes instead of being created empty and PATCHed afterward. canary/rc have no file -> empty body, unchanged. New manual `announce` workflow (workflow_dispatch, tag input) re-syncs the notes file over the live release and posts a violet embed (title, notes lead-in, release-page link) to the Discord #releases channel via the DISCORD_RELEASE_WEBHOOK secret. Stable-only: a -rc tag is refused unless allow_prerelease=true. Pressing "go" is the quality gate, so a half-built or failed release is never announced. docs/releases/README.md documents the ritual; TEMPLATE.md is the skeleton. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
1.6 KiB
YAML
40 lines
1.6 KiB
YAML
# Announce a stable release to the Discord #releases channel.
|
|
#
|
|
# This is the deliberate "go" step for a release. Release notes live in the repo at
|
|
# docs/releases/<tag>.md and are seeded into the Gitea release body at creation by the build
|
|
# workflows (scripts/ci/gitea-release.sh), so the release is never noteless. Once every
|
|
# platform's CI is green for a tag, dispatch this workflow with that tag: it re-asserts the notes
|
|
# file over the live release and posts a formatted embed to #releases.
|
|
#
|
|
# Manual on purpose — pressing "go" is the quality gate that says "all platforms built, notes are
|
|
# final, tell the community." It is NOT wired to the tag push, so a half-built or failed release
|
|
# is never announced. Stable-only: a -rc/pre-release tag is refused unless allow_prerelease=true.
|
|
#
|
|
# Requires the repo secret DISCORD_RELEASE_WEBHOOK (the #releases channel webhook URL); GITEA auth
|
|
# reuses REGISTRY_TOKEN like the other release workflows.
|
|
name: announce
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: "Release tag to announce (e.g. v0.18.0)"
|
|
required: true
|
|
allow_prerelease:
|
|
description: "Announce even if the tag is a pre-release (-rc)"
|
|
required: false
|
|
default: "false"
|
|
|
|
jobs:
|
|
announce:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Post release announcement to Discord
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
|
DISCORD_RELEASE_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
|
|
ALLOW_PRERELEASE: ${{ inputs.allow_prerelease }}
|
|
run: bash scripts/ci/discord-announce.sh "${{ inputs.tag }}"
|