From 5c4ade6f20a480943ee54a68bc7e4ed7183fc38d Mon Sep 17 00:00:00 2001 From: Viren070 Date: Tue, 17 Jun 2025 21:44:54 +0100 Subject: [PATCH] ci: add discord webhook step to docker builds --- .github/workflows/deploy-docker.yml | 71 +++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/.github/workflows/deploy-docker.yml b/.github/workflows/deploy-docker.yml index ea9ed486..a43ee762 100644 --- a/.github/workflows/deploy-docker.yml +++ b/.github/workflows/deploy-docker.yml @@ -78,6 +78,8 @@ jobs: echo EOF } >> "${GITHUB_ENV}" + echo "TAGS=${TAGS}" >> "${GITHUB_ENV}" + echo "CHANNEL=${CHANNEL}" >> "${GITHUB_ENV}" cat "${GITHUB_ENV}" @@ -101,3 +103,72 @@ jobs: context: . file: ./Dockerfile tags: ${{env.DOCKER_IMAGE_TAGS}} + + - name: Send Discord Notification + env: + CHANNEL: ${{env.CHANNEL}} + TAGS: ${{env.TAGS}} + run: | + # Determine role based on channel + if [ "$CHANNEL" = "stable" ]; then + ROLE_ID="<@&1384627130272452638>" + COLOR=5763719 # Green + TITLE="๐ŸŽ‰ Stable Release" + else + ROLE_ID="<@&1384627462155272242>" + COLOR=15844367 # Orange + TITLE="๐ŸŒ™ Nightly Build" + fi + + # Format tags for display + FORMATTED_TAGS=$(for tag in $TAGS; do echo "โ€ข \`$tag\`"; done | tr '\n' '\\n') + + # Get current timestamp + TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + + # Create JSON payload + cat << EOF > discord_payload.json + { + "content": "$ROLE_ID", + "embeds": [ + { + "title": "$TITLE - Docker Images Published", + "description": "New Docker images have been built and pushed to registries.", + "color": $COLOR, + "fields": [ + { + "name": "๐Ÿ“ฆ Channel", + "value": "\`$CHANNEL\`", + "inline": true + }, + { + "name": "๐Ÿท๏ธ Tags Published", + "value": "$FORMATTED_TAGS", + "inline": false + }, + { + "name": "๐Ÿ“ View Images", + "value": "[Docker Hub](https://hub.docker.com/r/viren070/aiostreams) ยท [GHCR](https://github.com/users/viren070/packages/container/aiostreams)", + "inline": false + }, + { + "name": "๐Ÿ”— View Build", + "value": "[GitHub Actions](https://github.com/Viren070/aiostreams/actions/runs/${{ github.run_id }})", + "inline": false + } + ], + "footer": { + "text": "AIOStreams CI/CD", + "icon_url": "https://github.com/Viren070.png" + }, + "timestamp": "$TIMESTAMP" + } + ] + } + EOF + + # Send to Discord + curl --fail --show-error -H "Content-Type: application/json" \ + -X POST \ + -d @discord_payload.json \ + ${{ secrets.DISCORD_WEBHOOK_URL }}