Emil Simeonov
39ef86647c
GRM-19: add molecule tests for template content, deregister, and update workflows
...
- template-content: Verifies rendered systemd template contains correct
directives for docker mode (Type=oneshot, RemainAfterExit=yes) and
prune service/timer content.
- deregister: Installs runner, creates fake .runner file, runs deregister
tasks, verifies .runner file is removed.
- update: Installs docker and binary runners, runs update tasks, verifies
image/binary and data directories remain intact after update.
These scenarios bridge gaps where the deregister task file and update
workflows were not covered by existing molecule tests.
2026-06-19 03:24:19 +02:00
Emil Simeonov
5fb282e38e
GRM-19: fix ansible playbooks to use include_role for role defaults loading
...
Replace include_tasks with include_role + tasks_from in disable, remove,
start, enable, stop, and status playbooks. include_tasks does not load
role defaults, causing undefined variable errors (e.g. gitea_runner_data_dir)
when deregistering or registering runners.
2026-06-19 03:18:24 +02:00
Emil Simeonov
1bbe3b4f43
GRM-17: fix docker mode status detection and systemd template
...
- systemd template for docker mode now uses Type=oneshot + RemainAfterExit=yes
so that systemctl is-active returns active when the container is running.
Previously docker run -d exited immediately, causing systemd to mark the
service as inactive even though the container was still up.
- grm list now tries multiple container name fallbacks for docker mode:
1. gitea-runner-{name} (current naming)
2. gitea-runner-{host} (legacy installs where name defaulted to host)
3. systemctl is-active gitea-runner@{name} (for installs with fixed template)
- All tests pass, 100% coverage, ruff + pyright clean
2026-06-19 02:47:14 +02:00
Emil Simeonov
a575a89026
GRM-16: test: add molecule lifecycle scenarios, integration tests, and docs
...
- Add multi-instance molecule scenario verifying isolated data/config dirs
- Add lifecycle molecule scenario testing stop/disable/enable/start sequence
- Update default and binary verify playbooks for template unit assertions
- Add integration tests for full CLI lifecycle and multi-instance support
- Add pytest integration marker and --no-cov Makefile target
- Update README with lifecycle commands, multi-instance examples, and architecture
- Update Makefile with start/stop/enable/disable/status/remove targets
- Update .env.example with GRM_LANG documentation
2026-06-18 23:14:02 +02:00
Emil Simeonov
e5964ca5a9
GRM-14: feat: add systemd template units and multi-instance Ansible support
...
- Add instance-scoped base data/config directories in defaults
- Create gitea-runner@.service.j2 template supporting Docker and binary modes
- Refactor service.yml to install systemd template unit instances
- Remove direct container lifecycle from docker_mode.yml (delegate to systemd)
- Add deregister.yml for runner deregistration on disable/remove
- Create lifecycle playbooks: start, stop, enable, disable, status, remove
- Update handlers, integration_test, docker_update, binary_update for template units
2026-06-18 22:59:04 +02:00
Emil Simeonov
6414f2306c
GRM-13: fix: rewrite integration test to verify .runner file and container health instead of unreliable API checks
2026-06-18 09:34:45 +02:00
Emil Simeonov
1ad7c0a816
GRM-12: fix: convert runner config from TOML to YAML format
2026-06-18 04:47:41 +02:00
Emil Simeonov
9378451a12
GRM-12: fix: remove recursive var definitions from install-runner.yml
2026-06-18 04:40:11 +02:00
Emil Simeonov
e08c11ea83
GRM-12: feat: add GITEA_ADMIN_TOKEN support for integration test
2026-06-18 04:37:05 +02:00
Emil Simeonov
81dd11e720
GRM-12: fix: make integration test conditional on admin API accessibility
2026-06-18 04:34:28 +02:00
Emil Simeonov
a05cd1c7ee
GRM-12: fix: set Docker working dir to /data for .runner persistence
2026-06-18 04:29:24 +02:00
Emil Simeonov
55fee77c91
GRM-11: fix: override Docker container entrypoint to bypass run.sh wrapper
2026-06-18 04:23:14 +02:00
Emil Simeonov
b48038a3a9
GRM-10: fix: add timeout to runner registration to prevent indefinite hangs
2026-06-18 04:11:43 +02:00
Emil Simeonov
994c30da57
GRM-9: test: add parameterized multi-platform Molecule testing (Arch, Ubuntu 24/26, Debian 12/13)
2026-06-18 04:09:27 +02:00
Emil Simeonov
aef24352c1
GRM-8: fix: remove recursive variable definitions in install and update playbooks
2026-06-18 03:50:08 +02:00
Emil Simeonov
8c385dcbdc
GRM-7: docs: overhaul README and add project documentation
2026-06-18 03:36:20 +02:00
Emil Simeonov
2530ec54cc
GRM-6: fix: resolve idempotence issues and testing infrastructure
2026-06-18 03:36:20 +02:00
Emil Simeonov
cc000c226c
GRM-5: feat: parameterize all hardcoded configuration values as Ansible variables
2026-06-18 03:36:20 +02:00
Emil Simeonov
0cea9b9490
GRM-4: refactor: consolidate systemd checks and deduplicate role structure
2026-06-18 03:36:19 +02:00
Emil Simeonov
b3838eb180
GRM-3: refactor: migrate source terminology from act_runner to gitea_runner
2026-06-18 03:36:19 +02:00
Emil Simeonov
3c8654342f
GRM-2: refactor: remove dead code and legacy artifacts
2026-06-18 03:36:19 +02:00
Emil Simeonov
170b53ad28
GRM-1: feat: initial implementation of Gitea Runner Manager
2026-06-17 18:15:28 +02:00