Skip to content

Commit

Permalink
feat(notification): Notify in case of Release failure (#218)
Browse files Browse the repository at this point in the history
* implement post stage

* test

* fix param

* remove test exit

* add comment

* fix lint

---------

Co-authored-by: Gulom Alimov <[email protected]>
  • Loading branch information
Googlom and Gulom Alimov authored Sep 16, 2024
1 parent eab2f71 commit 2cb610d
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,43 @@ jobs:
tag_name: ${{ steps.version.outputs.v-version }}
generate_release_notes: true
make_latest: true

post:
name: Post Action
runs-on: ubuntu-latest
needs: [release]
if: always()
steps:
# Check status of the worklfow
- uses: martialonline/workflow-status@v4
id: check

# This step expects base64 encoded JSON object as below:
# {
# "smtp_url": "smtp+starttls://user:password@server:port",
# "smtp_mail_from": "[email protected]",
# "smtp_mail_rcpt": "[email protected]",
# }
- name: Decode SMTP secrets and set them in GITHUB_ENV
id: smtp_secrets
if: steps.check.outputs.status == 'failure' || steps.check.outputs.status == 'cancelled'
run: >
echo "${{ secrets.SMTP_CONFIG }}" |
base64 --decode |
jq -r 'to_entries[] | "\(.key)=\(.value)"' |
while read line; do
echo "$line" >> $GITHUB_ENV; echo "::add-mask::${line#*=}";
done
- name: Notify Piper team on failure or cancelled
if: steps.smtp_secrets.conclusion == 'success'
uses: dawidd6/action-send-mail@v3
with:
connection_url: ${{ env.smtp_url }}
subject: Workflow failure in ${{ github.repository }}
priority: high
to: ${{ env.smtp_mail_rcpt }}
from: Piper on GitHub <${{ env.smtp_mail_from }}>
body: |
Workflow '${{ github.workflow }}' has a job with status '${{ steps.check.outputs.status }}'.
Workflow link: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

0 comments on commit 2cb610d

Please sign in to comment.