79 lines
2.2 KiB
YAML
79 lines
2.2 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, 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=🚀 <b>Deployment Success!</b>%0A<b>Project:</b> fullstack-portfolio%0A<b>Status:</b> 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}}
|
|
✅ <b>Deployment SUCCESS</b>
|
|
{{else}}
|
|
❌ <b>Deployment FAILED</b>
|
|
{{/success}}
|
|
|
|
<b>📦 Project:</b> <code>{{ repo.name }}</code>
|
|
|
|
<b>📝 Commit:</b>
|
|
<i>{{ commit.message }}</i>
|
|
|
|
<b>👤 Author:</b> {{ commit.author }}
|
|
|
|
<b>🛠 Build Details:</b>
|
|
⏱ <b>Duration:</b> {{ build.duration }}s
|
|
🔗 <a href="{{ build.link }}">View Full Logs</a>
|
|
when:
|
|
- event: [push]
|
|
branch: master
|
|
status: [ success, failure ] |