-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Description
To prevent broken merges and ensure a reliable developer experience, we need CI that validates both the Python backend (using uv) and the Vue/Vite webapp build. This was discussed in the PR #1038 review but is independent and can be delivered separately.
🔧 Tasks
-
Add a workflow file at
.github/workflows/webapp-backend-ci.ymlthat:-
Runs on
pull_requesttargetingenext -
Triggers only when relevant paths change (backend, webapp, or tooling files)
-
Has two jobs:
- python-uv-check: installs
uv, syncs deps, runs Django checks - webapp-build: Node 20,
npm ci,npm run buildin the webapp dir
- python-uv-check: installs
-
-
Ensure usable caching (npm cache keyed to
package-lock.json) -
Make the jobs required in the repo’s branch protection rules (handled by maintainers after merge)
-
Document a short “CI expectations” blurb in
README.md(what the jobs do and how to reproduce locally)
📄 Proposed Workflow (copy as-is)
name: Webapp & Backend CI
on:
pull_request:
branches: [ enext ]
paths:
- "app/eventyay/webapp/**"
- "app/**.py"
- "app/**/**.py"
- "app/pyproject.toml"
- "app/uv.lock"
- ".github/workflows/webapp-backend-ci.yml"
jobs:
python-uv-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install uv
run: pip install uv
- name: Sync dependencies
run: uv sync --directory app
- name: Django checks
run: uv run python app/manage.py check
webapp-build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: app/eventyay/webapp
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
cache-dependency-path: app/eventyay/webapp/package-lock.json
- name: Install
run: npm ci
- name: Build
run: npm run build📚 README addition (short)
Add to README.md:
## CI (GitHub Actions)
Every PR to `enext` runs:
- **python-uv-check**: installs `uv`, syncs deps (`uv sync --directory app`), and runs `manage.py check`.
- **webapp-build**: Node 20, `npm ci`, `npm run build` in `app/eventyay/webapp`.
Reproduce locally:
```bash
pip install uv
uv sync --directory app
uv run python app/manage.py check
cd app/eventyay/webapp
npm ci
npm run build
### ✅ Acceptance Criteria
- Workflow file exists and runs on PRs to `enext`
- Backend job (uv) passes on a clean repo
- Webapp job (Vite build) passes on a clean repo
- CI status appears on PRs and blocks merge on failure
- README includes the brief CI section above
Metadata
Metadata
Assignees
Labels
No labels