# Gitea Actions workflow — build, test, deploy # Shows deployment status on the repo page, Actions tab, and commits. name: Build & Deploy on: push: branches: [master] jobs: # ---- Job 1: Typecheck & Build ---- build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 - name: Install dependencies run: npm ci - name: Typecheck run: npm run typecheck # Vite build is done inside Docker, so this is just a fast sanity check. # Full build + test happens in the Docker multi-stage build below. # ---- Job 2: Docker build + deploy ---- deploy: needs: build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build Docker image (includes npm test gate) run: docker compose build - name: Deploy via docker compose run: | docker compose up -d --remove-orphans sleep 3 docker compose ps - name: Smoke test run: | curl -sf --retry 5 --retry-delay 2 http://localhost:80/ && echo "OK — site is live"