From 8a0f5f2e69210eb046ca5413abfa7870f42535da Mon Sep 17 00:00:00 2001 From: techartdev Date: Tue, 24 Feb 2026 16:00:28 +0200 Subject: [PATCH] release workflow --- .github/workflows/release-discord.yaml | 68 ++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/release-discord.yaml diff --git a/.github/workflows/release-discord.yaml b/.github/workflows/release-discord.yaml new file mode 100644 index 0000000..363198e --- /dev/null +++ b/.github/workflows/release-discord.yaml @@ -0,0 +1,68 @@ +name: Announce release to Discord + +on: +release: +types: [published] + +permissions: +contents: read + +jobs: +notify-discord: +runs-on: ubuntu-latest +steps: +- name: Post release announcement to Discord +env: +DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} +RELEASE_NAME: ${{ github.event.release.name }} +RELEASE_TAG: ${{ github.event.release.tag_name }} +RELEASE_URL: ${{ github.event.release.html_url }} +RELEASE_BODY: ${{ github.event.release.body }} +REPO: ${{ github.repository }} +run: | +if [ -z "$DISCORD_WEBHOOK_URL" ]; then +echo "DISCORD_WEBHOOK_URL is not configured; skipping." +exit 0 +fi + +if [ -n "$RELEASE_NAME" ]; then +TITLE="$RELEASE_NAME" +else +TITLE="$RELEASE_TAG" +fi + +BODY_CLEAN=$(printf '%s' "$RELEASE_BODY" | sed 's/\r//g') +BODY_TRIM=$(printf '%s' "$BODY_CLEAN" | sed '/^[[:space:]]*$/d') + +if [ -n "$BODY_TRIM" ]; then +SUMMARY=$(printf '%s' "$BODY_TRIM" | head -c 1400) +else +SUMMARY="No release notes provided." +fi + +PAYLOAD=$(jq -n \ +--arg title "🚀 New release published: $TITLE" \ +--arg repo "$REPO" \ +--arg tag "$RELEASE_TAG" \ +--arg url "$RELEASE_URL" \ +--arg summary "$SUMMARY" \ +'{ +content: "", +embeds: [ +{ +title: $title, +url: $url, +color: 5814783, +fields: [ +{name: "Repository", value: $repo, inline: true}, +{name: "Tag", value: $tag, inline: true}, +{name: "Release URL", value: $url, inline: false}, +{name: "Release notes", value: $summary, inline: false} +] +} +] +}') + +curl -sS -X POST "$DISCORD_WEBHOOK_URL" \ +-H "Content-Type: application/json" \ +-d "$PAYLOAD"