Repository navigation
fix: update environment variables for VPS deployment #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |