ci: rename build-nsInnoUnp.yml -> build-ns7zip.yml; update doc refs
Workflow now targets Simone/nsis-plugin-ns7zip. Renamed the file and the workflow `name:`, and updated all references in active docs (plans/archived and docs/archived left as frozen history). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ Branch: `feature/python-rewrite-phase-a`.
|
||||
- [x] `runner/config.yaml` esporta `PYTHONIOENCODING=utf-8` per garantire stdio UTF-8 nei log act_runner → Gitea
|
||||
- [x] `tests/python/test_commands_job.py` aggiunto: 13 test (happy path Linux, happy path Windows + override, skip-artifact, cleanup su build failure, cleanup su clone failure, validazione template/extra-env, helper `_apply_vmx_overrides` / `_read_guest_os_from_vmx` / `_parse_extra_env_json`)
|
||||
- [x] Suite completa: ruff clean, mypy --strict clean, **104 pytest PASS**, coverage totale **79.25%**, coverage `commands/job.py` **83%**
|
||||
- [ ] Workflow `build-nsInnoUnp.yml` matrix (Win + Linux) end-to-end PASS contro VM reali — richiede host con runner registrato
|
||||
- [ ] Workflow `build-ns7zip.yml` matrix (Win + Linux) end-to-end PASS contro VM reali — richiede host con runner registrato
|
||||
- [ ] Workflow `self-test.yml` / `lint.yml` PASS sul nuovo entry point — stessa dipendenza
|
||||
- [ ] Misurazione tempo job entro ±10% del baseline PowerShell (`Measure-CIBenchmark.ps1`)
|
||||
|
||||
@@ -30,12 +30,12 @@ Branch: `feature/python-rewrite-phase-a`.
|
||||
| Coverage `commands/job.py` ≥80% | ✅ 83% |
|
||||
| Cleanup VM garantito su tutti i path di errore | ✅ (test `test_job_cleanup_on_*`) |
|
||||
| Hook Fase C (factory backend, no import workstation diretto) | ✅ |
|
||||
| Workflow `build-nsInnoUnp.yml` matrix PASS | ⏳ validazione hardware utente |
|
||||
| Workflow `build-ns7zip.yml` matrix PASS | ⏳ validazione hardware utente |
|
||||
| Tempo entro ±10% baseline | ⏳ misurazione utente |
|
||||
|
||||
## Cosa resta a carico utente
|
||||
|
||||
1. Eseguire `build-nsInnoUnp.yml` (matrix Win + Linux) sul runner host registrato e verificare che il job concluda con artifact pubblicato — il flusso deve passare dal nuovo entry point Python.
|
||||
1. Eseguire `build-ns7zip.yml` (matrix Win + Linux) sul runner host registrato e verificare che il job concluda con artifact pubblicato — il flusso deve passare dal nuovo entry point Python.
|
||||
2. Lanciare `self-test.yml` e `lint.yml` per validare che gli altri workflow restino verdi dopo lo switch.
|
||||
3. Eseguire `scripts/Measure-CIBenchmark.ps1` (resta in PS) prima/dopo lo switch e confermare delta tempo entro ±10%.
|
||||
4. Aggiornare `Measure-CIBenchmark.ps1` se la wall-clock del nuovo entry point la rende necessaria; in caso di regressione >10%, aprire issue in `TODO.md` per profiling A5.
|
||||
|
||||
@@ -52,7 +52,7 @@ Branch: `feature/python-rewrite-phase-a`.
|
||||
- [ ] Burn-in 4 job concorrenti × 10 round (versione Python di
|
||||
`Test-CapacityBurnIn`) — **richiede VM reali, lasciato a carico
|
||||
utente**.
|
||||
- [ ] Workflow `build-nsInnoUnp.yml` matrix (Win + Linux) end-to-end
|
||||
- [ ] Workflow `build-ns7zip.yml` matrix (Win + Linux) end-to-end
|
||||
PASS — eredita pendenza da A4 (richiede runner registrato).
|
||||
|
||||
## Definizione di "fatto" A5
|
||||
@@ -82,11 +82,11 @@ sostituirà con `*.service` + `*.timer` su systemd).
|
||||
## Cosa resta a carico utente
|
||||
|
||||
1. Eseguire un burn-in concorrente (4 job × 10 round) usando il workflow
|
||||
`build-nsInnoUnp.yml` matrix o `scripts/Test-CapacityBurnIn.ps1` (che
|
||||
`build-ns7zip.yml` matrix o `scripts/Test-CapacityBurnIn.ps1` (che
|
||||
ora delega via shim alla CLI Python `job`) e verificare:
|
||||
- PASS senza VM orfane (`vm cleanup` non rimuove nulla a fine round).
|
||||
- Wall-clock entro ±20% del baseline pre-Python (`Measure-CIBenchmark.ps1`).
|
||||
2. Validare `build-nsInnoUnp.yml` matrix (Win + Linux) end-to-end PASS
|
||||
2. Validare `build-ns7zip.yml` matrix (Win + Linux) end-to-end PASS
|
||||
sul runner reale — pendenza ereditata da A4.
|
||||
3. Validare `self-test.yml` e `lint.yml` post-switch.
|
||||
|
||||
|
||||
@@ -232,7 +232,7 @@ Validazione di A4 lato runner reale.
|
||||
|
||||
Note: artifact github-free (no upload-artifact; file raw su
|
||||
`F:\CI\Artifacts\<job>`); `use-git-clone`/`submodules` default ON.
|
||||
- [ ] `build-nsInnoUnp.yml` matrix Win+Linux → atteso PASS,
|
||||
- [ ] `build-ns7zip.yml` matrix Win+Linux → atteso PASS,
|
||||
artifact pubblicato per entrambe le piattaforme.
|
||||
|
||||
- [ ] Se uno fallisce: scaricare i log dell'esecuzione, aprire issue in
|
||||
@@ -244,7 +244,7 @@ Validazione di A4 lato runner reale.
|
||||
|
||||
Validazione finale di A5 (definizione di "fatto Fase A").
|
||||
|
||||
- [ ] Triggerare il workflow `build-nsInnoUnp.yml` 4 volte di seguito
|
||||
- [ ] Triggerare il workflow `build-ns7zip.yml` 4 volte di seguito
|
||||
(oppure usare lo script `scripts/Test-CapacityBurnIn.ps1` che ora
|
||||
delega via shim alla CLI Python `job`):
|
||||
|
||||
|
||||
@@ -367,7 +367,7 @@ finestra di manutenzione concordata.
|
||||
- [ ] Verificare runner Linux online su Gitea UI.
|
||||
- [ ] Smoke trigger:
|
||||
- [ ] `self-test.yml` → PASS dal runner Linux
|
||||
- [ ] `build-nsInnoUnp.yml` matrix Win+Linux → PASS dal runner Linux
|
||||
- [ ] `build-ns7zip.yml` matrix Win+Linux → PASS dal runner Linux
|
||||
- [ ] Monitorare per ≥30 min:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -202,7 +202,7 @@ gitea/ # workflow + actions invariati
|
||||
- [ ] `pytest` verde con coverage minima 70% su `src/ci_orchestrator/`
|
||||
- [ ] `ruff check` + `mypy --strict` puliti su tutto `src/`
|
||||
- [ ] `lint.yml` aggiornato: PSSA per file PS legacy + ruff/mypy per Python
|
||||
- [ ] Workflow `build-nsInnoUnp.yml` PASS su matrice Windows + Linux
|
||||
- [ ] Workflow `build-ns7zip.yml` PASS su matrice Windows + Linux
|
||||
- [ ] Smoke test (`Test-Smoke.ps1` o equivalente Python) PASS
|
||||
- [ ] Capacity burn-in 4 job concorrenti PASS
|
||||
- [ ] `README.md`, `AGENTS.md`, `docs/ARCHITECTURE.md`, `docs/HOST-SETUP.md` aggiornati
|
||||
|
||||
@@ -132,7 +132,7 @@ Finestra di manutenzione concordata:
|
||||
3. Verificare nessun job in coda lato Gitea
|
||||
4. Avviare act_runner Linux (`systemctl start act-runner`)
|
||||
5. Trigger manuale di un workflow di smoke test
|
||||
6. Trigger del workflow matrix `build-nsInnoUnp.yml` (Win + Linux build)
|
||||
6. Trigger del workflow matrix `build-ns7zip.yml` (Win + Linux build)
|
||||
|
||||
Se PASS → cutover confermato. Se FAIL → rollback (riavvio runner Windows,
|
||||
nessun dato è stato distrutto).
|
||||
@@ -205,7 +205,7 @@ Costo: codebase divisa in due ambienti, maggiore overhead operativo.
|
||||
- [ ] act_runner gira come systemd service `act-runner.service` su Linux Mint
|
||||
- [ ] Tutti i template VM (`WinBuild2025`, `WinBuild2022`, `LinuxBuild2404`)
|
||||
operativi dal nuovo host con snapshot integri
|
||||
- [ ] Workflow `build-nsInnoUnp.yml` (matrix Win+Linux) PASS dal nuovo host
|
||||
- [ ] Workflow `build-ns7zip.yml` (matrix Win+Linux) PASS dal nuovo host
|
||||
- [ ] Burn-in capacity 4 job concorrenti PASS, tempi entro ±20% del baseline
|
||||
- [ ] Storage migrato a `/var/lib/ci/`, host Windows in stand-by come rollback
|
||||
- [ ] Tutti i timer systemd attivi e schedulati
|
||||
|
||||
@@ -13,7 +13,7 @@ Sintesi fasi:
|
||||
- **Fase A — Rewrite Python dell'orchestratore (host Windows attuale)**
|
||||
- Output verificabile: `python -m ci_orchestrator job ...` sostituisce
|
||||
`Invoke-CIJob.ps1`; `pytest` ≥70% coverage; workflow
|
||||
`build-nsInnoUnp.yml` PASS.
|
||||
`build-ns7zip.yml` PASS.
|
||||
- Stato: da iniziare.
|
||||
- **Fase B — Migrazione host a Linux Mint + Workstation Pro Linux**
|
||||
- Output verificabile: act_runner come `act-runner.service` systemd;
|
||||
@@ -67,7 +67,7 @@ A4; cambiano solo path/env vars in Fase B).
|
||||
- [x] [A4] Portare `Invoke-CIJob.ps1` → `python -m ci_orchestrator job`
|
||||
- [x] [A4] Aggiornare `gitea/actions/local-ci-build/action.yml` per invocare la CLI Python direttamente
|
||||
- [x] [A4] Forzare `PYTHONIOENCODING=utf-8` in `runner/config.yaml`
|
||||
- [ ] [A4] Eseguire workflow `build-nsInnoUnp.yml` (matrix Win+Linux) end-to-end PASS
|
||||
- [ ] [A4] Eseguire workflow `build-ns7zip.yml` (matrix Win+Linux) end-to-end PASS
|
||||
- [x] [A5] Convertire errori frequenti `AGENTS.md` #9, #10, #11, #12 in test pytest dedicati
|
||||
- [x] [A5] Aggiornare `AGENTS.md` con sezione "Python development" (venv, ruff, mypy, pytest)
|
||||
- [x] [A5] Aggiornare `docs/ARCHITECTURE.md` con nuovo layout package
|
||||
@@ -93,7 +93,7 @@ A4; cambiano solo path/env vars in Fase B).
|
||||
- [ ] [B5] Abilitare tutti i timer con `systemctl enable --now` e validare `systemctl list-timers`
|
||||
- [ ] [B6] Stop act_runner sull'host Windows e verifica coda Gitea vuota
|
||||
- [ ] [B6] Rsync incrementale finale `F:\CI\Artifacts\` → `/var/lib/ci/artifacts/`
|
||||
- [ ] [B6] Trigger smoke workflow + `build-nsInnoUnp.yml` matrix da host Linux PASS
|
||||
- [ ] [B6] Trigger smoke workflow + `build-ns7zip.yml` matrix da host Linux PASS
|
||||
- [ ] [B7] Eseguire burn-in 4 job concorrenti × 10 round su template Windows e Linux con tempi entro ±20% baseline
|
||||
- [ ] [B8] Backup finale di `F:\CI\` su archivio
|
||||
- [ ] [B8] Lasciare host Windows spento ma reinstallato per ≥1 mese come rollback
|
||||
@@ -278,7 +278,7 @@ Gitea per chiamare la CLI Python direttamente.
|
||||
- [x] Aggiungere `PYTHONIOENCODING=utf-8` in `runner/config.yaml` env
|
||||
- [x] Lasciare `Invoke-CIJob.ps1` come shim per scheduled task / chiamate manuali esterne (rimosso in A5)
|
||||
- [x] Test pytest end-to-end con mock backend + transport: `test_commands_job.py`
|
||||
- [ ] Eseguire workflow `build-nsInnoUnp.yml` matrix (Win + Linux) PASS
|
||||
- [ ] Eseguire workflow `build-ns7zip.yml` matrix (Win + Linux) PASS
|
||||
- [ ] Eseguire workflow `self-test.yml` PASS
|
||||
- [ ] Eseguire workflow `lint.yml` PASS
|
||||
|
||||
@@ -290,7 +290,7 @@ factory `backends.load_backend(config)`.
|
||||
**Test / validazione**:
|
||||
|
||||
- `pytest tests/test_commands_job.py` PASS con coverage ≥80% sul comando `job`
|
||||
- Workflow `build-nsInnoUnp.yml` end-to-end PASS dal nuovo entry point
|
||||
- Workflow `build-ns7zip.yml` end-to-end PASS dal nuovo entry point
|
||||
- Output catturato da act_runner leggibile (no encoding broken, no ANSI rotti)
|
||||
- Tempi job entro ±10% rispetto al baseline PS (misurati con `Measure-CIBenchmark` ancora in PS, lecito)
|
||||
|
||||
@@ -589,7 +589,7 @@ una finestra di manutenzione concordata.
|
||||
- [ ] Rsync incrementale finale `F:\CI\Artifacts\` → `/var/lib/ci/artifacts/` (preserva permessi)
|
||||
- [ ] Verificare che il runner Linux sia "online" e non "paused" su Gitea
|
||||
- [ ] Trigger manuale di workflow smoke (`self-test.yml`) PASS
|
||||
- [ ] Trigger manuale `build-nsInnoUnp.yml` matrix Win + Linux PASS
|
||||
- [ ] Trigger manuale `build-ns7zip.yml` matrix Win + Linux PASS
|
||||
- [ ] Monitorare `journalctl -u act-runner -f` per ≥30 min sotto carico reale
|
||||
|
||||
**Hook futuri Fase C**: nessuno specifico in B6. Cutover non tocca
|
||||
@@ -603,7 +603,7 @@ backend.
|
||||
**Test / validazione**:
|
||||
|
||||
- `self-test.yml` PASS dal runner Linux
|
||||
- `build-nsInnoUnp.yml` matrix Win+Linux PASS dal runner Linux
|
||||
- `build-ns7zip.yml` matrix Win+Linux PASS dal runner Linux
|
||||
- Nessun errore in `journalctl -u act-runner --since "1h ago"` di severità critica
|
||||
- Artifact correttamente in `/var/lib/ci/artifacts/`
|
||||
|
||||
@@ -987,7 +987,7 @@ Ogni voce: **Rischio** — Fase / Severità / Mitigazione / Owner action item.
|
||||
- [ ] `lint.yml` dual-stack (PSSA per PS legacy + ruff/mypy/pytest per Python) PASS
|
||||
- [ ] act_runner gira come `act-runner.service` systemd su Linux Mint
|
||||
- [ ] Tutti i template VM (`WinBuild2025`, `WinBuild2022`, `LinuxBuild2404`) operativi dal nuovo host con snapshot integri
|
||||
- [ ] Workflow `build-nsInnoUnp.yml` matrix Win+Linux PASS dal nuovo host
|
||||
- [ ] Workflow `build-ns7zip.yml` matrix Win+Linux PASS dal nuovo host
|
||||
- [ ] Burn-in capacity 4 job concorrenti × 10 round PASS, tempi entro ±20% baseline Windows
|
||||
- [ ] Storage migrato a `/var/lib/ci/`, host Windows spento come rollback
|
||||
- [ ] Tutti i timer systemd attivi e schedulati equivalenti ai Task Scheduler Windows
|
||||
|
||||
Reference in New Issue
Block a user