From ec083d317f2bc55b99409ce7a63dae6bc423008e Mon Sep 17 00:00:00 2001 From: Janis Date: Fri, 1 May 2026 20:33:58 +0200 Subject: [PATCH] feat(ncs-promotion): add Discord webhook notifications for promotion success and failure --- .../nowchess/ncs-promotion-template.yaml | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/kargo-projects/nowchess/ncs-promotion-template.yaml b/kargo-projects/nowchess/ncs-promotion-template.yaml index 734d800..3a681e4 100644 --- a/kargo-projects/nowchess/ncs-promotion-template.yaml +++ b/kargo-projects/nowchess/ncs-promotion-template.yaml @@ -15,6 +15,8 @@ spec: value: main - name: imageTag value: ${{ imageFrom(vars.imageRepoUrl).Tag }} + - name: discordWebhook + value: ${{ secret("discord-webhook").webhook }} steps: - uses: git-clone config: @@ -77,3 +79,75 @@ spec: images: - repoURL: ${{ vars.imageRepoUrl }} tag: ${{ vars.imageTag }} + - uses: http + if: "${{ success() }}" + as: notify-success + config: + url: ${{ vars.discordWebhook }} + method: POST + headers: + Content-Type: application/json + body: | + { + "embeds": [ + { + "title": "✅ Promotion Succeeded", + "description": "Component promoted successfully", + "color": 3066993, + "fields": [ + { + "name": "Component", + "value": "${{ vars.component }}", + "inline": true + }, + { + "name": "Image Tag", + "value": "${{ vars.imageTag }}", + "inline": true + }, + { + "name": "Stage", + "value": "${{ ctx.stage }}", + "inline": true + } + ], + "timestamp": "${{ now.unix }}" + } + ] + } + - uses: http + if: "${{ failure() }}" + as: notify-failure + config: + url: ${{ vars.discordWebhook }} + method: POST + headers: + Content-Type: application/json + body: | + { + "embeds": [ + { + "title": "❌ Promotion Failed", + "description": "Component promotion failed", + "color": 15158332, + "fields": [ + { + "name": "Component", + "value": "${{ vars.component }}", + "inline": true + }, + { + "name": "Image Tag", + "value": "${{ vars.imageTag }}", + "inline": true + }, + { + "name": "Stage", + "value": "${{ ctx.stage }}", + "inline": true + } + ], + "timestamp": "${{ now.unix }}" + } + ] + }