07.11 — CI#
Three workflows:
main_ci.yml(fast, lint + typecheck),dev_ci.yml(same for dev/feature/fix branches),e2e.yml(manual, Redis service + Firefox).
Overview#
| Workflow | Trigger | Platform | Effect |
|---|---|---|---|
main_ci.yml | push/PR main | ubuntu + windows × py 3.14 | make check-coding-style (mypy + ruff). No browser. |
dev_ci.yml | push dev / feature/_ / fix/_ | ubuntu × py 3.14 | id., but Ubuntu only |
e2e.yml | workflow_dispatch (manual) | ubuntu + Redis service + Firefox + geckodriver | Full run of the e2e suite. Upload .screenshots/, .ocarina_logs/, .reports/. |
main_ci.yml#
name: Main branch CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
defaults:
run:
shell: bash
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.14"]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with: { python-version: "3.14" }
- uses: actions/cache@v5
with:
path: .venv
key: venv-${{ runner.os }}-py3.14-${{ hashFiles('pyproject.toml') }}
- name: Install
run: make install-on-ci
- name: Check coding style
run: |
. .venv/bin/activate
make check-coding-style- OS matrix: ubuntu + windows — verifies Python portability.
- No browser: just
make check-coding-style(mypy + ruff). Fast, no Selenium / Redis / OTP. .venvcache: reused between runs.
dev_ci.yml#
on:
push:
branches: [dev, "feature/**", "fix/**"]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
# … identical to main_ci.yml, just Ubuntu only …Identical to main_ci.yml but Ubuntu only (Windows only runs on main).