Files

43 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

2026-06-29 21:56:12 -05:00
# 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]
2026-06-29 22:50:17 -05:00
---
## [0.1.0] - 2026-06-29
First release. Built, registered, validated end-to-end, and running live on
Unraid (amd64) against `git.alwisp.com`.
2026-06-29 21:56:12 -05:00
### 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.
2026-06-29 22:50:17 -05:00
- Live Unraid deployment validated: `unraid-runner-01` registered as amd64, came online, and ran a `host`-label smoke job (run 116) successfully on the real target host.
### 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).
- Published `v0.1.0`/`latest` as a **multi-arch** manifest (`linux/amd64` + `linux/arm64`) so it runs on Unraid (amd64) as well as Apple Silicon. The amd64 variant passes the 17/17 smoke test.
- Unraid docs and compose example: corrected the image path to include the `jason/` owner namespace (`registry.alwisp.com/jason/custom-gitea-runner`), added a required **registry-login** step (the package is private), and recommended the `host` label for Docker build/push jobs (`GITEA_RUNNER_LABELS=…,host:host`).
2026-06-29 21:56:12 -05:00
### 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.
2026-06-29 21:56:12 -05:00
---
<!-- Releases appear below this line, newest first. -->