Files
fullstack-portfolio/.woodpecker.yml
Moh Dzulfikri Maulana efc6eb130f
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
feat: add extensive debugging output to the Telegram notification step and simplify its message content.
2026-03-10 16:12:42 +07:00

99 lines
2.9 KiB
YAML

steps:
# 1. Build & Push Image
build-and-push:
image: plugins/docker
settings:
registry: git.exavolt.web.id
repo: git.exavolt.web.id/fikri/fullstack-portfolio
dockerfile: Dockerfile
use_cache: true
purge: false
username:
from_secret: gitea_user
password:
from_secret: gitea_token
when:
branch: master
event: push
# 2. Deploy via SSH
deploy:
image: appleboy/drone-ssh
settings:
host: 103.197.190.44
username: exavolt
port: 22
key:
from_secret: ssh_key
envs: [ gitea_user, gitea_token ]
gitea_user:
from_secret: gitea_user
gitea_token:
from_secret: gitea_token
script:
- cd ~/projects/fikri-fullstack-portfolio
- echo $gitea_token | docker login git.exavolt.web.id -u $gitea_user --password-stdin
- docker compose pull
- docker compose up -d --remove-orphans
- docker image prune -f
when:
branch: master
event: push
# 3. Notification Debugging Stage
notify-telegram:
image: alpine
environment:
TELEGRAM_TOKEN:
from_secret: telegram_token
TELEGRAM_CHAT_ID:
from_secret: telegram_chat_id
commands:
- apk add --no-cache curl > /dev/null 2>&1
- |
echo "=== DEBUGGING WOODPECKER ENV ==="
echo "1. Menampilkan semua variabel CI yang tersedia:"
env | grep CI_ | sort
echo ""
echo "2. Mengecek apakah Secret terpetakan ke Env OS:"
if [ -z "$TELEGRAM_TOKEN" ]; then
echo "❌ ERROR: TELEGRAM_TOKEN kosong di environment shell!"
else
echo "✅ TELEGRAM_TOKEN terdeteksi (Awalan: $(echo $TELEGRAM_TOKEN | cut -c 1-3)...)"
fi
if [ -z "$TELEGRAM_CHAT_ID" ]; then
echo "❌ ERROR: TELEGRAM_CHAT_ID kosong di environment shell!"
else
echo "✅ TELEGRAM_CHAT_ID terdeteksi: $TELEGRAM_CHAT_ID"
fi
echo ""
echo "3. Mencoba koneksi dasar ke API Telegram:"
# Hanya mengecek apakah API merespons, bukan mengirim pesan
curl -s -I https://api.telegram.org | grep "HTTP/"
echo ""
echo "4. Menjalankan perintah utama..."
# Menentukan status (Woodpecker versi terbaru biasanya pakai CI_PIPELINE_STATUS)
STATUS="${CI_STATUS:-${CI_PIPELINE_STATUS}}"
if [ "$STATUS" = "success" ]; then
ICON="✅"
TEXT="SUCCESS"
else
ICON="❌"
TEXT="FAILED"
fi
# Eksekusi dengan verbose (-v) untuk melihat header transmisi (tanpa membocorkan token)
curl -v -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \
-d "chat_id=${TELEGRAM_CHAT_ID}" \
-d "message_thread_id=8" \
-d "parse_mode=HTML" \
-d "text=${ICON} <b>Deployment ${TEXT}!</b>"
when:
branch: master
event: push
status: [ success, failure ]