name: Build and Deploy Go App on: push: branches: - master - cicd jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - uses: actions/setup-go@v6 with: go-version: '^1.25' - name: Build Go app run: | cd modules/server go mod tidy go build -o nyanimedb . - uses: actions/upload-artifact@v4 with: name: nyanimedb path: modules/server/nyanimedb - name: Build Docker image run: | cd modules/server docker build -t nyanimedb:latest . deploy: runs-on: self-hosted needs: build env: POSTGRES_USER: ${{ secrets.POSTGRES_USER }} POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} POSTGRES_DB: nyanimedb POSTGRES_PORT: 5432 POSTGRES_VERSION: 18 LOG_LEVEL: ${{ vars.LOG_LEVEL }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Deploy containers locally run: | cd deploy docker compose down || true docker compose up -d