From 19c8da1a86fa055f4c0f7ae847e2d54ca1075726 Mon Sep 17 00:00:00 2001 From: Josh Gomez <114548659+jgomez720@users.noreply.github.com> Date: Sun, 11 Feb 2024 12:08:00 -0700 Subject: [PATCH] Add Discord release updates automation (#1346) adding Discord release updates automation --- .github/workflows/announce_release.yml | 29 +++++++++++++++++++++++++ public/announce_release.py | 26 ++++++++++++++++++++++ public/discord-avatar.png | Bin 0 -> 11233 bytes 3 files changed, 55 insertions(+) create mode 100644 .github/workflows/announce_release.yml create mode 100644 public/announce_release.py create mode 100644 public/discord-avatar.png diff --git a/.github/workflows/announce_release.yml b/.github/workflows/announce_release.yml new file mode 100644 index 000000000..6eedb74e7 --- /dev/null +++ b/.github/workflows/announce_release.yml @@ -0,0 +1,29 @@ +name: Announce Release + +on: + release: + types: [published] + +jobs: + announce_release: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install requests + + - name: Announce Release + env: + DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} + RELEASE_VERSION: ${{ github.event.release.tag_name }} + RELEASE_BODY: ${{ github.event.release.body}} + run: python public/announce_release.py \ No newline at end of file diff --git a/public/announce_release.py b/public/announce_release.py new file mode 100644 index 000000000..cdcff4ef8 --- /dev/null +++ b/public/announce_release.py @@ -0,0 +1,26 @@ +import requests +import os + +webhook_url = os.getenv('DISCORD_WEBHOOK_URL') +release_version = os.getenv('RELEASE_VERSION') +release_body = os.getenv('RELEASE_BODY') + +# message to send to Discord +data = { + "content": + f''' + **{release_version}** is now available! Check out the latest features and improvements here: https://zoo.dev/modeling-app/download + {release_body} + ''', + "username": "Modeling App Release Updates", + "avatar_url": "https://raw.githubusercontent.com/KittyCAD/modeling-app/main/public/discord-avatar.png" +} + +# POST request to the Discord webhook +response = requests.post(webhook_url, json=data) + +# Check for success +if response.status_code == 204: + print("Successfully sent the message to Discord.") +else: + print("Failed to send the message to Discord.") \ No newline at end of file diff --git a/public/discord-avatar.png b/public/discord-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..33fe44c1e84898660b37fcb1d8b8ba9c90d95abe GIT binary patch literal 11233 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 literal 0 HcmV?d00001