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, TELEGRAM_TOKEN, TELEGRAM_CHAT_ID ]
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
- >
curl -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=🚀 Deployment Success!%0AProject: fullstack-portfolio%0AStatus: Finished"
when:
branch: master
event: push
# 3.Telegram Notification
notify-telegram:
image: appleboy/drone-telegram:1.3.9
settings:
token:
from_secret: telegram_token
to:
from_secret: telegram_chat_id
message_thread_id: 8
format: html
message: |
{{#success build.status}}
✅ Deployment SUCCESS
{{else}}
❌ Deployment FAILED
{{/success}}
📦 Project: {{ repo.name }}
📝 Commit:
{{ commit.message }}
👤 Author: {{ commit.author }}
🛠 Build Details:
⏱ Duration: {{ build.duration }}s
🔗 View Full Logs
when:
- event: [push]
branch: master
status: [ success, failure ]