name: build-and-deploy on: push: branches: [main] workflow_dispatch: env: HARBOR: harbor.wace.me PROJECT: dev-pilots APP: jskim jobs: deploy: runs-on: ubuntu-24.04 steps: - name: tools run: | apt-get update -qq apt-get install -y ca-certificates curl git docker.io docker-compose-v2 >/dev/null 2>&1 || apt-get install -y ca-certificates curl git docker.io >/dev/null - name: checkout run: | rm -rf src && git clone --depth 1 --branch "$GITHUB_REF_NAME" http://oauth2:${{ github.token }}@gitea:3000/${GITHUB_REPOSITORY}.git src - name: build run: | cd src && docker build -t $HARBOR/$PROJECT/$APP:latest . - name: push env: HUSER: ${{ secrets.HARBOR_USER }} HSECRET: ${{ secrets.HARBOR_SECRET }} run: | echo "$HSECRET" | docker login $HARBOR -u "$HUSER" --password-stdin docker push $HARBOR/$PROJECT/$APP:latest - name: deploy env: DATABASE_URL: ${{ secrets.DATABASE_URL }} run: | cd src && docker compose -f deploy/docker-compose.yml up -d --pull always --force-recreate