name: CI on: pull_request: concurrency: group: ci-pr-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: ci: runs-on: ubuntu-latest env: COMPOSE_PROJECT_NAME: gh-pr-${{ github.event.pull_request.number || github.run_id }} steps: - uses: actions/checkout@v4 - name: Clean previous compose project run: docker compose -f docker-compose.yml -f docker-compose.ci.yml down -v --remove-orphans || true - name: Build run: docker compose -f docker-compose.yml -f docker-compose.ci.yml build - name: Ruff run: docker compose -f docker-compose.yml -f docker-compose.ci.yml run --rm --no-deps web ruff check . - name: Mypy run: docker compose -f docker-compose.yml -f docker-compose.ci.yml run --rm --no-deps web mypy apps config - name: Pytest run: docker compose -f docker-compose.yml -f docker-compose.ci.yml run --rm web pytest - name: Final cleanup if: always() run: docker compose -f docker-compose.yml -f docker-compose.ci.yml down -v --remove-orphans || true