#!/usr/bin/env bash set -e # Determine Icon based on Status ICON="🚀" if [ "$STATUS" = "failure" ]; then ICON="❌" fi # Prepare Text for Telegram (Markdown) TEXT="$ICON *$TITLE*%0A%0A$MESSAGE" echo "Starting notifications..." # Function: Send to Ntfy send_ntfy() { if [ -n "$NTFY_URL" ] && [ -n "$NTFY_TOPIC" ]; then local click_url="$GIT_URL/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" local auth_args="" # Check for Basic Auth if [ -n "$NTFY_USERNAME" ] && [ -n "$NTFY_PASSWORD" ]; then auth_args="-u $NTFY_USERNAME:$NTFY_PASSWORD" fi echo "[Ntfy] Sending..." if curl -s $auth_args -X POST "$NTFY_URL/$NTFY_TOPIC" \ -H "Title: $ICON $TITLE" \ -H "Priority: 4" \ -H "Click: $click_url" \ -H "Actions: view, Open Logs, $click_url" \ -d "$MESSAGE"; then echo "[Ntfy] Sent." else echo "[Ntfy] Failed." fi fi } # Function: Send to Gmail send_gmail() { if [ -n "$GMAIL_USER" ] && [ -n "$GMAIL_TO" ] && [ -n "$GMAIL_PASS" ]; then echo "[Gmail] Sending..." # Send via curl (portable, no sendmail needed) if curl -s --url "smtps://smtp.gmail.com:465" --ssl-reqd \ --user "$GMAIL_USER:$GMAIL_PASS" \ --mail-from "$GMAIL_USER" \ --mail-rcpt "$GMAIL_TO" \ --upload-file - <