name: CI / Deploy on: push: branches: [main] pull_request: env: DEPLOY_DIR: /home/ryan/c4 jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.25" - name: Run tests run: go test ./... lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.25" - name: Install golangci-lint run: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest - name: Run linter run: golangci-lint run deploy: if: github.ref == 'refs/heads/main' && github.event_name == 'push' needs: [test, lint] runs-on: games steps: - uses: actions/checkout@v4 - name: Sync to deploy directory run: | mkdir -p $DEPLOY_DIR rsync -a --delete --exclude 'data/' . $DEPLOY_DIR/ - name: Ensure data directory exists with correct ownership run: | mkdir -p $DEPLOY_DIR/data - name: Rebuild and restart run: cd $DEPLOY_DIR && docker compose up -d --build --remove-orphans