# ────────────────────────────────────────────────────────────────────────────── # Flight Radar — Gitea Actions CI/CD # # PREREQUISITES (one-time setup — see README for full instructions): # # 1. Add the act_runner service to your Gitea Portainer stack. # # 2. Pre-create the runner config file on the host: # /srv/docker/traefik/stacks/gitea/volumes/act_runner/config.yaml # (see content in the README / deployment docs) # # 3. Start the runner, then grab the registration token from: # Gitea → Site Administration → Runners → Create Runner # Add ACT_RUNNER_TOKEN to Portainer stack environment variables. # # 4. Give the runner access to Docker (socket mounted via config.yaml). # # PIPELINE BEHAVIOUR: # • Triggers on every push to the default branch (main). # • Builds both Docker images on the server (no registry needed). # • Brings the app up with docker compose; only changed services restart. # • If the build fails the old containers keep running — no downtime. # • Prunes dangling images after a successful deploy. # ────────────────────────────────────────────────────────────────────────────── name: Deploy on: push: branches: - main workflow_dispatch: env: COMPOSE_PROJECT: flight-radar COMPOSE_FILE: flight-comparator/docker-compose.yml jobs: deploy: runs-on: ubuntu-latest # resolved to catthehacker/ubuntu:act-22.04 by runner config steps: - name: Checkout uses: actions/checkout@v4 - name: Deploy with docker compose run: | echo "=== Deploying commit ${{ gitea.sha }} to ${{ gitea.ref_name }} ===" docker compose -f "$COMPOSE_FILE" -p "$COMPOSE_PROJECT" up --build -d --remove-orphans - name: Prune dangling images run: docker image prune -f - name: Show running containers run: docker compose -f "$COMPOSE_FILE" -p "$COMPOSE_PROJECT" ps