feat: add GitHub Action for deployment notifications via ntfy and Gmail SMTP
This commit is contained in:
52
action.yml
Normal file
52
action.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
name: "Deploy Notification"
|
||||
description: "Notify deployment result via ntfy and Gmail SMTP"
|
||||
|
||||
inputs:
|
||||
status:
|
||||
description: "Deployment status (success | failure)"
|
||||
required: true
|
||||
|
||||
title:
|
||||
description: "Notification title"
|
||||
required: true
|
||||
|
||||
message:
|
||||
description: "Notification message"
|
||||
required: true
|
||||
|
||||
ntfy_url:
|
||||
description: "ntfy server URL (e.g. https://ntfy.example.com)"
|
||||
default: "https://ntfy.hcmc.online"
|
||||
required: false
|
||||
|
||||
ntfy_topic:
|
||||
description: "ntfy topic"
|
||||
default: "deploy"
|
||||
required: false
|
||||
|
||||
gmail_user:
|
||||
description: "Gmail address"
|
||||
default: "sitienbmt@gmail.com"
|
||||
required: false
|
||||
|
||||
gmail_to:
|
||||
description: "Recipient email"
|
||||
default: "sitienbmt@gmail.com"
|
||||
required: false
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Send notification
|
||||
shell: bash
|
||||
env:
|
||||
STATUS: ${{ inputs.status }}
|
||||
TITLE: ${{ inputs.title }}
|
||||
MESSAGE: ${{ inputs.message }}
|
||||
NTFY_URL: ${{ inputs.ntfy_url }}
|
||||
NTFY_TOPIC: ${{ inputs.ntfy_topic }}
|
||||
GMAIL_USER: ${{ inputs.gmail_user }}
|
||||
GMAIL_TO: ${{ inputs.gmail_to }}
|
||||
GMAIL_PASS: ${{ secrets.GMAIL_APP_PASSWORD }}
|
||||
run: |
|
||||
bash ${{ github.action_path }}/notify.sh
|
||||
29
notify.sh
Normal file
29
notify.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
ICON="🚀"
|
||||
if [ "$STATUS" = "failure" ]; then
|
||||
ICON="❌"
|
||||
fi
|
||||
|
||||
# ---- ntfy ----
|
||||
if [ -n "$NTFY_URL" ] && [ -n "$NTFY_TOPIC" ]; then
|
||||
curl -s -X POST "$NTFY_URL/$NTFY_TOPIC" \
|
||||
-H "Title: $ICON $TITLE" \
|
||||
-H "Priority: 4" \
|
||||
-d "$MESSAGE"
|
||||
fi
|
||||
|
||||
# ---- Gmail SMTP ----
|
||||
if [ -n "$GMAIL_USER" ] && [ -n "$GMAIL_TO" ]; then
|
||||
{
|
||||
echo "Subject: $ICON $TITLE"
|
||||
echo "From: $GMAIL_USER"
|
||||
echo "To: $GMAIL_TO"
|
||||
echo ""
|
||||
echo "$MESSAGE"
|
||||
} | sendmail -S smtp.gmail.com:587 \
|
||||
-au"$GMAIL_USER" \
|
||||
-ap"$GMAIL_PASS" \
|
||||
"$GMAIL_TO"
|
||||
fi
|
||||
Reference in New Issue
Block a user