|
|
|
|
@@ -218,10 +218,10 @@ jobs:
|
|
|
|
|
- [x] Authentication uses `secrets.REGISTRY_TOKEN` (not the built-in token)
|
|
|
|
|
|
|
|
|
|
#### Manual Verification:
|
|
|
|
|
- [ ] Push a commit to a branch → pipeline runs `backend-test` and `frontend-test` only — no image build
|
|
|
|
|
- [ ] Push a SemVer tag → pipeline runs all three jobs, image appears in Gitea container registry with 4 tags
|
|
|
|
|
- [ ] Break a test intentionally → pipeline fails, `build-and-publish` does not run
|
|
|
|
|
- [ ] Push a non-SemVer tag → pipeline runs tests only, no image build
|
|
|
|
|
- [x] Push a commit to a branch → pipeline runs `backend-test` and `frontend-test` only — no image build
|
|
|
|
|
- [x] Push a SemVer tag → pipeline runs all three jobs, image appears in Gitea container registry with 4 tags
|
|
|
|
|
- [ ] Break a test intentionally → pipeline fails, `build-and-publish` does not run (skipped — guaranteed by `needs` dependency, verified implicitly)
|
|
|
|
|
- [x] Push a non-SemVer tag → pipeline runs tests only, no image build
|
|
|
|
|
|
|
|
|
|
**Implementation Note**: After creating the workflow file and passing automated verification, the manual verification requires pushing to the actual Gitea instance. Pause here for the human to test on the real runner.
|
|
|
|
|
|
|
|
|
|
@@ -251,7 +251,11 @@ jobs:
|
|
|
|
|
The following must be configured in Gitea **before** the pipeline can publish images:
|
|
|
|
|
|
|
|
|
|
1. **Repository secret** `REGISTRY_TOKEN`: A Gitea Personal Access Token with `package:write` permission
|
|
|
|
|
2. **Buildah** must be installed on the runner (standard on most Linux runners)
|
|
|
|
|
2. **Docker** must be available on the runner (act_runner provides this via socket forwarding)
|
|
|
|
|
|
|
|
|
|
### Addendum: Buildah → Docker pivot
|
|
|
|
|
|
|
|
|
|
Buildah was the original choice to avoid Docker-in-Docker issues. However, the act_runner does not have Buildah installed, and running it inside a container would require elevated privileges. Since the runner already has Docker available via socket forwarding, the workflow was switched to `docker build/tag/push`. This is not classic DinD — it uses the host Docker daemon directly.
|
|
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
|
|
|