Files
my_website/.github/workflows/ghcr.yml
2025-11-09 00:07:07 +07:00

45 lines
1.2 KiB
YAML

name: CI/CD Deploy Go-HTMX-SQLite App
on:
push:
branches: [ "main" ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# Step 1: Log in to GHCR
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GHCR_PAT }}
# Step 2: Build Docker image
- name: Build Docker image
run: |
docker build -t ghcr.io/${{ github.repository_owner }}/my_website:latest .
# Step 3: Push image to GHCR
- name: Push Docker image
run: |
docker push ghcr.io/${{ github.repository_owner }}/my_website:latest
# Step 4: Deploy to server via SSH
- name: Deploy to server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_SSH_KEY }}
script: |
cd /home/dilanka/my_website
docker pull ghcr.io/${{ github.repository_owner }}/my_website:latest
docker compose down
docker compose up -d