51 lines
1.3 KiB
YAML
51 lines
1.3 KiB
YAML
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
|