Skip to content

Commit 0d48674

Browse files
committed
Add GitHub Actions CI; note Amazee web UI in test-parity ledger
CI runs ruff + the full pytest suite across Python 3.10-3.13 and installs Chromium so the browser-WASM E2E runs. The test-parity ledger now records the Django Amazee web upgrade UI (JSON endpoints + Alpine.js settings page) as the equivalent of the Laravel AmazeeSettingsController.
1 parent 46af1e7 commit 0d48674

2 files changed

Lines changed: 44 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
concurrency:
9+
group: ci-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
test:
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
python-version: ["3.10", "3.11", "3.12", "3.13"]
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Install uv
23+
uses: astral-sh/setup-uv@v5
24+
with:
25+
enable-cache: true
26+
27+
- name: Sync dependencies
28+
run: uv sync --extra dev --python ${{ matrix.python-version }}
29+
30+
- name: Lint (ruff)
31+
run: uv run ruff check src tests
32+
33+
# The browser E2E proves the shared Pagefind WASM accepts a Python-built
34+
# index. It auto-skips when Chromium is absent; install it so it runs.
35+
- name: Install Chromium for the browser E2E
36+
run: uv run playwright install --with-deps chromium
37+
38+
- name: Test (pytest)
39+
run: uv run pytest -q

docs/TEST_PARITY.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,11 @@ mitigating coverage:
7373
token-cache tests; the multi-thousand-page stress fixture is not reproduced.
7474
5. **`AmazeeProvisionCommand` / `AmazeeSettingsController` / budget middleware
7575
(Laravel-only adapter glue)** — the Django equivalents are the
76-
`scolta_amazee_provision` command, the `AmazeeAccountUpgrader` API, and the
77-
`DjangoAiService` budget hook (all tested). A web *upgrade UI* (OTP form) is
78-
not built.
76+
`scolta_amazee_provision` command, the `AmazeeAccountUpgrader` API, the
77+
`DjangoAiService` budget hook, and the web upgrade UI (the
78+
`scolta_django.amazee_views` JSON endpoints + the Alpine.js
79+
`amazee_settings.html` page, mirroring the Laravel settings view) — all
80+
tested.
7981

8082
## Deferred by design (out of scope per the port spec)
8183

0 commit comments

Comments
 (0)