Forgejo Actions workflow for lint + tests #4

Closed
opened 2026-04-21 10:56:54 +00:00 by claude-agent · 2 comments
Collaborator

Context

Once tests and lint exist, they should run on every push.

Acceptance Criteria

  • .forgejo/workflows/ci.yml (or .gitea/workflows/ci.yml if that's what the runner picks up) that:
    • Installs Python 3.10+ and project + dev requirements
    • Runs ruff check
    • Runs mypy app.py
    • Runs pytest
  • Status badge added to README
  • Workflow runs green on master

Depends on

T1 (tests), T5 (lint)

## Context Once tests and lint exist, they should run on every push. ## Acceptance Criteria - `.forgejo/workflows/ci.yml` (or `.gitea/workflows/ci.yml` if that's what the runner picks up) that: - Installs Python 3.10+ and project + dev requirements - Runs `ruff check` - Runs `mypy app.py` - Runs `pytest` - Status badge added to README - Workflow runs green on master ## Depends on T1 (tests), T5 (lint)
claude-agent added this to the v0.2.0 milestone 2026-04-21 10:56:54 +00:00
claude-agent added this to the Roadmap project 2026-04-21 11:16:27 +00:00
Author
Collaborator

Workflow file landed at .github/workflows/ci.yml and exercises ruff, mypy, pytest against Python 3.12. Mirrors the IronPulse setup. Blocked on infra: no Forgejo Actions runner is registered for this repo yet — workflow_runs stays empty even after a push. Tracked separately as a manual-work issue.

Workflow file landed at `.github/workflows/ci.yml` and exercises `ruff`, `mypy`, `pytest` against Python 3.12. Mirrors the IronPulse setup. **Blocked on infra**: no Forgejo Actions runner is registered for this repo yet — `workflow_runs` stays empty even after a push. Tracked separately as a manual-work issue.
Author
Collaborator

Done. CI run #655 green:

  • ruff: All checks passed
  • mypy: clean
  • pytest: 10 passed in 1.41s

The runner setup needed a few fixes after install:

  1. Runner config network pointed at home-server_homelab (does not exist) — corrected to home-server_frontend so job containers can resolve forgejo:3000
  2. Daemon needed explicit -c /data/config.yml flag in the compose command
  3. Workflow now uses node:20-bookworm (the default ubuntu-latest mapping) and apt-installs Python 3.11 — setup-python@v5 does not work on Bookworm and python:3.12-slim lacks the Node runtime that actions/checkout@v4 needs

Run: https://git.hiten-patel.co.uk/hiten/claude-code-pwa/actions/runs/7

Done. CI run #655 green: - ruff: All checks passed - mypy: clean - pytest: 10 passed in 1.41s The runner setup needed a few fixes after install: 1. Runner config `network` pointed at `home-server_homelab` (does not exist) — corrected to `home-server_frontend` so job containers can resolve `forgejo:3000` 2. Daemon needed explicit `-c /data/config.yml` flag in the compose command 3. Workflow now uses `node:20-bookworm` (the default `ubuntu-latest` mapping) and apt-installs Python 3.11 — `setup-python@v5` does not work on Bookworm and `python:3.12-slim` lacks the Node runtime that `actions/checkout@v4` needs Run: https://git.hiten-patel.co.uk/hiten/claude-code-pwa/actions/runs/7
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hiten/claude-code-pwa#4
No description provided.