Files
forgerunner/CHANGELOG.md
T
Jason Stedwell ffc75cc25f
CI Smoke / toolchain (push) Successful in 1s
Phase 3 complete: docker login/build/push validated on live runner
Run 114 logged in to registry.alwisp.com, built, and pushed a test image
via the host label. Mark Phase 3 done in ROADMAP and CHANGELOG.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 22:13:41 -05:00

33 lines
3.1 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
---
## [Unreleased]
### Added
- Initial repository scaffold: directory structure, Dockerfile, entrypoint, healthcheck, smoke-test, config examples, compose example, and docs.
- Phase 0 planning documents: `AGENT.md`, `README.md`, `ROADMAP.md`.
- First successful local image build: `custom-gitea-runner:v0.1.0` (act_runner v0.2.11, Node 20, Docker CLI). Runtime smoke test passes 17/17.
- First live registration validated against `git.alwisp.com` (Gitea 1.26.4): instance-level runner registers, comes online, runs healthy, and restart reuses the existing config without creating a duplicate.
- `.gitea/workflows/ci-smoke.yml`: Phase 3 CI smoke workflow. Runs on the `host` label to validate the bundled toolchain (`actions/checkout@v4`, node/npm/git/docker, mounted Docker socket) directly in the runner container. First run passed.
- Published `registry.alwisp.com/jason/custom-gitea-runner:v0.1.0` (and `:latest`) — first image release to the Gitea Container Registry.
- `.gitea/workflows/docker-push.yml`: Phase 3 docker login/build/push validation workflow (`host` label). Run 114 logged in, built, and pushed a test image to the registry — completing Phase 3.
### Changed
- `test/sample-workflows/docker-login.yml` and `docker-build-push.yml`: now run on the `host` label instead of `ubuntu-latest`. Docker build/push need the runner's bundled Docker CLI and mounted socket, which the `ubuntu-latest` node job container does not provide. Also fixed a doubled image path in the build/push sample (`gitea.repository` already includes the owner).
### Fixed
- `docker/runner/Dockerfile`: `COPY` paths for the entrypoint, healthcheck, and smoke-test scripts now resolve from the repo-root build context used by `scripts/build-image.sh` (previously assumed the build context was `docker/runner/`, so the build failed at the `COPY` steps).
- `scripts/verify-runtime.sh`: now runs the smoke test via `--entrypoint` so it bypasses the `tini`/bootstrap `ENTRYPOINT` instead of triggering the registration flow and failing on a missing `GITEA_INSTANCE_URL`.
- `docker/runner/docker-entrypoint.sh`: `GITEA_RUNNER_LABELS` is now honored. `act_runner register` ignores its `--labels` flag when a config already exists, so the bootstrap generated a config with default labels and the env var was silently a no-op. The entrypoint now injects the labels into the generated config before registering.
- `scripts/deregister-runner.sh`: rewritten to deregister via the Gitea REST API. The previous version called `act_runner daemon --unregister`, a flag/command that does not exist in act_runner — deregistration must go through `DELETE /api/v1/admin/actions/runners/{id}`. Now takes a runner name or id and an admin API token.
- `scripts/publish-image.sh`: now supports a `REGISTRY_NAMESPACE` (default `jason`) so images push to `registry.alwisp.com/<owner>/<image>`. The Gitea Container Registry requires an owner namespace; without it the push 404s on blob upload.
---
<!-- Releases appear below this line, newest first. -->