From 638e3d353b899404beaee4cb401c8e878ca0a4a3 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Tue, 20 Apr 2021 19:29:52 -0500 Subject: [PATCH] ci: Discord notification workflow for releases When a new release is published, a Github Action workflow kicks off that sends a customized notification to Discord. --- .github/workflows/notify.yml | 21 +++++++++++++++ ci/notify/discord_notify.py | 48 +++++++++++++++++++++++++++++++++++ ci/notify/trash-icon.png | Bin 0 -> 4979 bytes 3 files changed, 69 insertions(+) create mode 100644 .github/workflows/notify.yml create mode 100644 ci/notify/discord_notify.py create mode 100644 ci/notify/trash-icon.png diff --git a/.github/workflows/notify.yml b/.github/workflows/notify.yml new file mode 100644 index 00000000..0a67858d --- /dev/null +++ b/.github/workflows/notify.yml @@ -0,0 +1,21 @@ +name: Release Notification + +on: + release: + types: [published] + +jobs: + notify: + name: Discord Notification + runs-on: ubuntu-latest + steps: + - run: wget https://raw.githubusercontent.com/rcdailey/trash-updater/master/ci/notify/discord_notify.py + - uses: actions/setup-python@v2 + with: + python-version: '3.x' + - run: pip install discord-webhook + - run: | + python discord_notify.py \ + "${{ github.event.release.tag_name }}" \ + "${{ secrets.DISCORD_WEBHOOK }}" \ + "${{ github.event.release.body }}" diff --git a/ci/notify/discord_notify.py b/ci/notify/discord_notify.py new file mode 100644 index 00000000..b91de847 --- /dev/null +++ b/ci/notify/discord_notify.py @@ -0,0 +1,48 @@ +from discord_webhook import DiscordWebhook, DiscordEmbed +import sys + +version = sys.argv[1] +if not version: + print('Pass version as first argument') + exit(1) + +webhook_url = sys.argv[2] +if not webhook_url: + print('Pass webhook URL as second argument') + exit(1) + +changelog = sys.argv[3] +if not changelog: + print('Pass changelog as third argument') + exit(1) + +mkdown_desc = f''' +**Release Notes** +``` +{changelog} +``` +''' + +embed = DiscordEmbed( + title=f'New Release {version}', + description=mkdown_desc, + url=f'https://github.com/rcdailey/trash-updater/releases/tag/{version}' + ) + +embed.set_author( + name='Trash Updater', + url='https://github.com/rcdailey/trash-updater', + icon_url='https://github.com/rcdailey/trash-updater/blob/master/ci/notify/trash-icon.png?raw=true') + +embed.add_embed_field(name='Linux (x64)', + value=f'[Download](https://github.com/rcdailey/trash-updater/releases/download/{version}/trash-linux-x64.zip)') + +embed.add_embed_field(name='Windows (x64)', + value=f'[Download](https://github.com/rcdailey/trash-updater/releases/download/{version}/trash-win-x64.zip)') + +embed.add_embed_field(name='MacOS (x64)', + value=f'[Download](https://github.com/rcdailey/trash-updater/releases/download/{version}/trash-osx-x64.zip)') + +webhook = DiscordWebhook(webhook_url) +webhook.add_embed(embed) +print(webhook.execute()) diff --git a/ci/notify/trash-icon.png b/ci/notify/trash-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..510354a9098199f2ef21a72cacf615138cb618df GIT binary patch literal 4979 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 K?^i*Q5&s2M5@kaG literal 0 HcmV?d00001