bbd376f057
B1: Linux Mint + VMware Workstation + setup-host-linux.sh (Python 3.12 note)
B2: rsync template transfer, VMX registration, smoke tests; keyrings.alt choice
B3: SSH key perms, BuildVMGuest + GiteaPAT via PlaintextKeyring (D-Bus-free)
B4: act-runner.service, config.yaml labels/envs fix, smoke job PASS
B5: rewritten — Python-only timers (no pwsh), 7z compression, --service-name
act-runner fix, prerequisite dirs, root service for backup
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
B4 — Closeout
Passo B4 di plans/PhaseB-user-checklist.md: act_runner Linux
registrato verso Gitea e gestito da systemd.
Stato
✅ COMPLETATO — act-runner.service attivo, runner registrato,
config.yaml corretto, smoke job PASS.
Cosa è stato fatto
- Binario act_runner Linux v1.0.4 scaricato in
/opt/ci/act_runner/con permessici-runner. - Runner registrato verso
https://gitea.emulab.itcon nomeci-linuxe labelwindows-build:host,linux-build:host. /etc/systemd/system/act-runner.servicecreato con:User=ci-runner,WorkingDirectory=/var/lib/ci/runner- Variabili d'ambiente CI (
CI_ROOT,CI_TEMPLATES,CI_BUILD_VMS,CI_ARTIFACTS,CI_KEYS,PYTHONIOENCODING) ExecStart=/opt/ci/act_runner/act_runner daemon --config /var/lib/ci/runner/config.yamlRestart=on-failure,RestartSec=10
/etc/ci/environmentcreato con le stesse variabili CI (usato dai timer systemd di B5).config.yamlgenerato congenerate-confige poi patchato viasedper:- Rimuovere i label
ubuntu-*:docker://generati di default e impostarewindows-build:host+linux-build:host - Sostituire le variabili placeholder
A_TEST_ENV_NAME_*con:CI_PYTHON_LAUNCHER: /opt/ci/venv/bin/pythonGITEA_CI_TEMPLATE_PATH: /var/lib/ci/templates/WinBuild2025/WinBuild2025.vmxGITEA_CI_LINUX_TEMPLATE_PATH: /var/lib/ci/templates/LinuxBuild2404/LinuxBuild2404.vmx
- Rimuovere i label
act-runner.serviceabilitato e avviato; log confermano connessione Gitea senza errori Docker.- Smoke job
self-test.ymltriggerato manualmente → PASS dal runner Linux.
Deviazioni / gotcha
- Nome servizio
act-runner(nonact_runner): il binario Linux si registra comeact-runner.service(trattino), mentre su Windows il servizio si chiamaact_runner(underscore). Questa differenza ha causato un bug nel comandomonitor runner, che usavaact_runnercome default — corretto aggiungendo--service-name act-runnernell'ExecStartdici-watch-runner-health.service. generate-configscrive label Docker:act_runner generate-configproduce labelubuntu-latest:docker://...che fanno cercare Docker (non installato). È necessario patchare il file conseddopo la generazione. Le istruzioni sono nel Passo 4 del checklist B.GITEA_CI_TEMPLATE_PATHnel service unit prima dello smoke test: se le variabili template non sono presenti inconfig.yamlo nel service unit, il job fallisce con"Got unexpected extra argument"(i path non vengono passati al CLI Python). Prerequisito obbligatorio prima di trigggerare lo smoke job.config.yamlseparato da.runner: il file.runnercontiene il token di registrazione (non toccare).config.yamlcontiene solo la configurazione operativa del runner.
Riferimenti commit
536fd68— feat: update runner configuration steps and add config.yaml generation instructionsa6aa926— fix: improve Python interpreter resolution for OS compatibilityb2803c3— fix: correct order of arguments for template path in local CI build action