ver 0.1
This commit is contained in:
+54
-44
@@ -27,7 +27,7 @@ The project is considered successful when it can:
|
||||
|
||||
## Phase 0 — Research and design
|
||||
|
||||
**Status:** Active
|
||||
**Status:** Complete
|
||||
|
||||
### Goals
|
||||
|
||||
@@ -40,13 +40,13 @@ The project is considered successful when it can:
|
||||
- [x] Write `AGENT.md`
|
||||
- [x] Write `README.md`
|
||||
- [x] Write `ROADMAP.md`
|
||||
- [ ] Create `CHANGELOG.md`
|
||||
- [ ] Create `.env.example`
|
||||
- [ ] Create ADR template under `docs/decisions/`
|
||||
- [ ] Write `docs/architecture.md`
|
||||
- [ ] Decide base image strategy
|
||||
- [ ] Decide socket-mount vs DinD position for v1
|
||||
- [ ] Decide registration mode defaults
|
||||
- [x] Create `CHANGELOG.md`
|
||||
- [x] Create `.env.example`
|
||||
- [x] Create ADR template under `docs/decisions/`
|
||||
- [x] Write `docs/architecture.md`
|
||||
- [x] Decide base image strategy
|
||||
- [x] Decide socket-mount vs DinD position for v1
|
||||
- [x] Decide registration mode defaults
|
||||
|
||||
### Exit criteria
|
||||
|
||||
@@ -59,7 +59,7 @@ The project is considered successful when it can:
|
||||
|
||||
## Phase 1 — Base image and bootstrap
|
||||
|
||||
**Status:** Planned
|
||||
**Status:** Complete
|
||||
|
||||
### Goals
|
||||
|
||||
@@ -69,24 +69,29 @@ The project is considered successful when it can:
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Create `docker/runner/Dockerfile`
|
||||
- [ ] Pin base image tag
|
||||
- [ ] Pin `act_runner` source/version
|
||||
- [ ] Install required dependencies at build time:
|
||||
- [ ] bash
|
||||
- [ ] curl
|
||||
- [ ] git
|
||||
- [ ] jq
|
||||
- [ ] nodejs
|
||||
- [ ] npm
|
||||
- [ ] docker CLI
|
||||
- [ ] ca-certificates
|
||||
- [ ] tini
|
||||
- [ ] tzdata
|
||||
- [ ] Create `docker/runner/docker-entrypoint.sh`
|
||||
- [ ] Create `docker/runner/healthcheck.sh`
|
||||
- [ ] Add image metadata labels
|
||||
- [ ] Verify startup prints tool versions
|
||||
- [x] Create `docker/runner/Dockerfile`
|
||||
- [x] Pin base image tag
|
||||
- [x] Pin `act_runner` source/version
|
||||
- [x] Install required dependencies at build time:
|
||||
- [x] bash
|
||||
- [x] curl
|
||||
- [x] git
|
||||
- [x] jq
|
||||
- [x] nodejs
|
||||
- [x] npm
|
||||
- [x] docker CLI
|
||||
- [x] ca-certificates
|
||||
- [x] tini
|
||||
- [x] tzdata
|
||||
- [x] Create `docker/runner/docker-entrypoint.sh`
|
||||
- [x] Create `docker/runner/healthcheck.sh`
|
||||
- [x] Add image metadata labels
|
||||
- [x] Verify startup prints tool versions
|
||||
|
||||
### Notes
|
||||
|
||||
- First successful build: `custom-gitea-runner:v0.1.0` (act_runner v0.2.11, node v20.20.2, npm 10.8.2, git 2.34.1, docker CLI 29.6.1).
|
||||
- Runtime smoke test passes 17/17 via `./scripts/verify-runtime.sh`.
|
||||
|
||||
### Exit criteria
|
||||
|
||||
@@ -99,7 +104,7 @@ The project is considered successful when it can:
|
||||
|
||||
## Phase 2 — Registration and config flows
|
||||
|
||||
**Status:** Planned
|
||||
**Status:** Complete
|
||||
|
||||
### Goals
|
||||
|
||||
@@ -109,15 +114,15 @@ The project is considered successful when it can:
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Create `config/runner.example.yaml`
|
||||
- [ ] Create `config/labels.example.env`
|
||||
- [ ] Create `scripts/register-runner.sh`
|
||||
- [ ] Create `scripts/deregister-runner.sh`
|
||||
- [ ] Add config path validation
|
||||
- [ ] Add first-boot registration flow
|
||||
- [ ] Add re-run safe bootstrap logic
|
||||
- [ ] Document required environment variables
|
||||
- [ ] Validate restart behavior with existing config
|
||||
- [x] Create `config/runner.example.yaml`
|
||||
- [x] Create `config/labels.example.env`
|
||||
- [x] Create `scripts/register-runner.sh`
|
||||
- [x] Create `scripts/deregister-runner.sh`
|
||||
- [x] Add config path validation
|
||||
- [x] Add first-boot registration flow
|
||||
- [x] Add re-run safe bootstrap logic
|
||||
- [x] Document required environment variables
|
||||
- [x] Validate restart behavior with existing config
|
||||
|
||||
### Exit criteria
|
||||
|
||||
@@ -125,6 +130,11 @@ The project is considered successful when it can:
|
||||
- Existing config is reused without duplicate registration.
|
||||
- Missing configuration fails fast with clear logs.
|
||||
|
||||
### Notes
|
||||
|
||||
- Validated live against `git.alwisp.com` (Gitea 1.26.4): runner `forgerunner-01` registered as instance-level runner (id 5), came online and healthy, and a container restart reused the existing config with no duplicate registration.
|
||||
- Registration token obtained via `POST /api/v1/admin/actions/runners/registration-token`; deregistration via `DELETE /api/v1/admin/actions/runners/{id}` (act_runner has no unregister command).
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — Docker workflow support
|
||||
@@ -167,13 +177,13 @@ The project is considered successful when it can:
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Create `docker/runner/smoke-test.sh`
|
||||
- [ ] Create `scripts/verify-runtime.sh`
|
||||
- [ ] Create `scripts/test-local-runner.sh`
|
||||
- [ ] Add `test/sample-workflows/checkout.yml`
|
||||
- [ ] Add `test/sample-workflows/node-action.yml`
|
||||
- [ ] Add `test/sample-workflows/docker-login.yml`
|
||||
- [ ] Add `test/sample-workflows/docker-build-push.yml`
|
||||
- [x] Create `docker/runner/smoke-test.sh`
|
||||
- [x] Create `scripts/verify-runtime.sh`
|
||||
- [x] Create `scripts/test-local-runner.sh`
|
||||
- [x] Add `test/sample-workflows/checkout.yml`
|
||||
- [x] Add `test/sample-workflows/node-action.yml`
|
||||
- [x] Add `test/sample-workflows/docker-login.yml`
|
||||
- [x] Add `test/sample-workflows/docker-build-push.yml`
|
||||
- [ ] Add regression test cases for:
|
||||
- [ ] missing `node`
|
||||
- [ ] broken Docker socket access
|
||||
|
||||
Reference in New Issue
Block a user