Skip to content

fix: update environment variables for VPS deployment #8

fix: update environment variables for VPS deployment

fix: update environment variables for VPS deployment #8

name: Deploy to VPS
on:
push:
branches: [ "main" ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 1. Checkout Code
- uses: actions/checkout@v6.0.2
# 2. Login ke Docker Hub
- name: Login to Docker Hub
uses: docker/login-action@v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# 3. Build & Push Image
- name: Build and push
uses: docker/build-push-action@v6.18.0
with:
context: .
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/kasir-api:latest
# 4. SSH ke VPS untuk update container
- name: Deploy to VPS
uses: appleboy/ssh-action@v1.0.3
env:
DB_CONN: ${{ secrets.DB_CONN }}
PORT: ${{ secrets.PORT }}
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.VPS_PASSWORD }}
port: 22
# Gunakan 'envs' untuk mengirim secrets ke environment SSH agar lebih aman
envs: DB_CONN,PORT
script: |
docker pull ${{ secrets.DOCKER_USERNAME }}/kasir-api:latest
docker stop kasir-api || true
docker rm kasir-api || true
# 1. Buat file .env di server
echo "DB_CONN=$DB_CONN" > .env
echo "PORT=$PORT" >> .env
# 2. Jalankan docker dengan membaca file .env tersebut
docker run -d \
--name kasir-api \
-p 8888:8080 \
--env-file .env \
${{ secrets.DOCKER_USERNAME }}/kasir-api:latest