name: CI on: pull_request: schedule: - cron: "0 2 * * *" concurrency: group: ci-pr-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: ci: if: github.event_name == 'pull_request' runs-on: ubuntu-latest env: CI_IMAGE: nohype-ci:${{ github.run_id }} steps: - uses: actions/checkout@v4 - name: Build run: docker build -t "$CI_IMAGE" . - name: Ruff run: docker run --rm "$CI_IMAGE" ruff check . - name: Mypy run: docker run --rm "$CI_IMAGE" mypy apps config - name: Pytest run: docker run --rm -e DATABASE_URL=sqlite:////tmp/ci.sqlite3 "$CI_IMAGE" pytest - name: Remove CI image if: always() run: docker image rm -f "$CI_IMAGE" || true nightly-e2e: if: github.event_name == 'schedule' runs-on: ubuntu-latest env: CI_IMAGE: nohype-ci-nightly:${{ github.run_id }} steps: - uses: actions/checkout@v4 - name: Build run: docker build -t "$CI_IMAGE" . - name: Nightly smoke journey run: docker run --rm -e DATABASE_URL=sqlite:////tmp/ci.sqlite3 "$CI_IMAGE" pytest apps/core/tests/test_smoke.py - name: Remove CI image if: always() run: docker image rm -f "$CI_IMAGE" || true