name : Release Notification
on :
release :
types : [ published]
workflow_dispatch :
inputs :
tag_name :
required : true
type : string
description : The release tag to generate a notification for
env :
TAG : ${{ github.event.release.tag_name || github.event.inputs.tag_name }}
jobs :
notify :
name : Discord Notification
runs-on : ubuntu-latest
steps :
- name : Checkout Source Code
uses : actions/checkout@v3
- name : Setup Inputs
run : |
cat >> $GITHUB_ENV <<"EOL"
INPUT_TAG="${{ env.TAG }}"
INPUT_ORG_REPO="${{ github.repository }}"
EOL
- name : Get Release Info
uses : octokit/request-action@v2.x
id : release
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
with :
route : GET /repos/{org_repo}/releases/tags/{tag}
# Write changelog to an environment variable to avoid certain characters from being processed
# by the shell
- name : Get Information from Release
env :
DATA : ${{ steps.release.outputs.data }}
run : |
jq -r '.assets[].browser_download_url' <<<"$DATA" > assets.txt
jq -r '.body' <<<"$DATA" > changelog.txt
- name : Setup Python
uses : actions/setup-python@v4
with :
python-version : '3.x'
- name : Install Discord Webhook Python Module
run : pip install "discord-webhook==1.0.0"
- name : Send Discord Notification
run : >
python ci/notify/discord_notify.py
--version ${{ env.TAG }}
--repo ${{ github.repository }}
--webhook-url ${{ secrets.DISCORD_WEBHOOK }}
--changelog changelog.txt
--assets assets.txt