Move CI/CD to Forgejo Actions; add CHANGELOG; issues-driven roadmap #19

Merged
claude-bot merged 1 commit from chore/forgejo-cicd into main 2026-07-07 22:30:50 +00:00
Contributor

Summary

Migrates CI/CD off GitHub Actions onto Forgejo Actions (running on git.rhoving.com), publishes authoritative multi-arch images to the Forgejo container registry, and automates tag-triggered releases. Also introduces a CHANGELOG.md and moves planning to Forgejo Issues, retiring the roadmap document.

Implements issues #2, #3, #4, and part of #5.

CI — .forgejo/workflows/ci.yml

Ports the existing pipeline (Python lint/type-check, pytest, frontend lint/build, multi-arch Docker build) and closes coverage gaps:

  • Frontend unit tests — runs Vitest (previously CI only linted + built the frontend).
  • Container health smoke test — boots the built image and asserts GET /api/v1/health returns 200.
  • E2E — runs the Playwright happy-path suite against the running container (the Playwright config targets :7842 with no webServer, so CI boots the image with DISABLE_AUTH=true).
  • Dependency auditspip-audit + npm audit (advisory / continue-on-error for now; flip to gating once triaged).
  • Migration checkalembic upgrade head on a fresh DB + alembic check for un-generated model changes.

Release — .forgejo/workflows/release.yml

On v* tags: builds + pushes linux/amd64 + linux/arm64 to git.rhoving.com/rbrooks/iris-wled (:<version>, :<major>.<minor>, :latest), then creates a Forgejo release with notes extracted from the matching CHANGELOG.md section. Human step stays: git tag vX.Y.Z && git push origin vX.Y.Z.

Docs

  • CHANGELOG.md — new; captures the shipped M0–M10 feature set under [1.0.0] (Keep a Changelog format).
  • docs/roadmap.md — archived down to a pointer at Forgejo Issues + the changelog; full task history stays in git.
  • docs/release.md / README.md — updated for the Forgejo registry and the issues-driven workflow.
  • Removes .github/workflows/*.

Reviewer notes / assumptions to confirm

  • Runner label: workflows use runs-on: ubuntu-latest. Confirm this matches the label your Forgejo runners advertise (ubuntu-latest vs docker vs a custom label) and adjust if needed.
  • Registry auth: uses the built-in ${{ secrets.GITHUB_TOKEN }} (Forgejo's automatic Actions token) for docker login against git.rhoving.com — needs package write scope for the repo.
  • Docker-in-runner: the build/E2E job assumes the runner can build and run containers (docker available).
  • No layer cache is configured (the old type=gha cache is GitHub-specific); a registry-backed cache can be added later.

Planning now lives in issues, grouped by the v1.0.0 / v1.1.0 / v2.0.0 labels. Merging this PR lets #2 be validated by the pipeline actually running.

🤖 Generated with Claude Code

## Summary Migrates CI/CD off GitHub Actions onto **Forgejo Actions** (running on git.rhoving.com), publishes authoritative multi-arch images to the **Forgejo container registry**, and automates **tag-triggered releases**. Also introduces a `CHANGELOG.md` and moves planning to Forgejo Issues, retiring the roadmap document. Implements issues #2, #3, #4, and part of #5. ## CI — `.forgejo/workflows/ci.yml` Ports the existing pipeline (Python lint/type-check, pytest, frontend lint/build, multi-arch Docker build) and closes coverage gaps: - **Frontend unit tests** — runs Vitest (previously CI only linted + built the frontend). - **Container health smoke test** — boots the built image and asserts `GET /api/v1/health` returns 200. - **E2E** — runs the Playwright happy-path suite against the running container (the Playwright config targets `:7842` with no `webServer`, so CI boots the image with `DISABLE_AUTH=true`). - **Dependency audits** — `pip-audit` + `npm audit` (advisory / `continue-on-error` for now; flip to gating once triaged). - **Migration check** — `alembic upgrade head` on a fresh DB + `alembic check` for un-generated model changes. ## Release — `.forgejo/workflows/release.yml` On `v*` tags: builds + pushes `linux/amd64` + `linux/arm64` to `git.rhoving.com/rbrooks/iris-wled` (`:<version>`, `:<major>.<minor>`, `:latest`), then creates a Forgejo release with notes extracted from the matching `CHANGELOG.md` section. Human step stays: `git tag vX.Y.Z && git push origin vX.Y.Z`. ## Docs - **`CHANGELOG.md`** — new; captures the shipped M0–M10 feature set under `[1.0.0]` (Keep a Changelog format). - **`docs/roadmap.md`** — archived down to a pointer at Forgejo Issues + the changelog; full task history stays in git. - **`docs/release.md`** / **`README.md`** — updated for the Forgejo registry and the issues-driven workflow. - Removes `.github/workflows/*`. ## Reviewer notes / assumptions to confirm - **Runner label**: workflows use `runs-on: ubuntu-latest`. Confirm this matches the label your Forgejo runners advertise (`ubuntu-latest` vs `docker` vs a custom label) and adjust if needed. - **Registry auth**: uses the built-in `${{ secrets.GITHUB_TOKEN }}` (Forgejo's automatic Actions token) for `docker login` against `git.rhoving.com` — needs package write scope for the repo. - **Docker-in-runner**: the build/E2E job assumes the runner can build and run containers (docker available). - No layer cache is configured (the old `type=gha` cache is GitHub-specific); a registry-backed cache can be added later. ## Related Planning now lives in [issues](https://git.rhoving.com/rbrooks/Iris-WLED/issues), grouped by the `v1.0.0` / `v1.1.0` / `v2.0.0` labels. Merging this PR lets #2 be validated by the pipeline actually running. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Move CI/CD to Forgejo Actions; add CHANGELOG; issues-driven roadmap
Some checks failed
CI / Python lint & type-check (pull_request) Failing after 1m5s
CI / Frontend lint, test & build (pull_request) Failing after 1m9s
CI / Alembic migration check (pull_request) Failing after 1m15s
CI / Python tests (pull_request) Failing after 1m19s
CI / Docker build, health smoke & E2E (pull_request) Has been skipped
CI / Dependency audit (pull_request) Failing after 1m31s
e032b30047
Replace the GitHub Actions pipeline with Forgejo Actions running on
git.rhoving.com, publish authoritative multi-arch images to the Forgejo
container registry, and automate tag-triggered releases.

CI additions beyond the previous pipeline:
- run frontend Vitest unit tests (previously lint + build only)
- boot the built image and smoke-test /api/v1/health
- run the Playwright E2E suite against the running container
- pip-audit + npm audit dependency audit job (advisory)
- Alembic migration-consistency check (upgrade head + alembic check)

release.yml builds/pushes git.rhoving.com/rbrooks/iris-wled on v* tags and
creates a Forgejo release with notes extracted from CHANGELOG.md.

Docs:
- add CHANGELOG.md capturing the shipped M0-M10 feature set under [1.0.0]
- archive docs/roadmap.md down to a pointer at Forgejo Issues + the changelog
- update docs/release.md and README for the Forgejo registry and issues workflow

Planning has moved to Forgejo Issues, grouped by semver labels
(v1.0.0 / v1.1.0 / v2.0.0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
claude-bot deleted branch chore/forgejo-cicd 2026-07-07 22:30:50 +00:00
Sign in to join this conversation.
No description provided.