Commit Graph
12 Commits
Author SHA1 Message Date
LucaZanni 715860c357 🐛 fix(ci): la guardia Dockerfile dice quando non riesce a leggere le ARG
- l'analisi delle ARG diventa la funzione arg_scope, e all'avvio gira su
  un Dockerfile di prova con una ARG fuori scope nota: se l'awk del runner
  non la riconosce, un ::warning lo dice, il controllo delle ARG salta e
  quello del registry resta, invece di dichiarare in regola ciò che non ha
  potuto leggere
- regex portabile: [$][{]? al posto di \$\{?, che gawk --posix segnalava
  come escape sconosciuto
- collaudo su gawk e gawk --posix (Dockerfile sintetico, pzeta-king prima
  della correzione, vue-pzportal, node-xmlvalidation) e con un awk rotto;
  stesso step, identico, nelle due varianti quality-gates

Fixes #12 @25m
refs PZeta_Touch/flux-repo#133
2026-09-11 21:38:14 +02:00
LucaZanni c593f29b0f 🐛 fix(ci): la guardia Dockerfile vede le ARG ereditate da uno stage padre
- una ARG passa agli stage che derivano da quello che la dichiara
  (FROM <stage>), come le ENV: lo prova il log BuildKit di
  nuxt-vue-components-docs v1.0.13, dove deps espande la NPM_VERSION di base
- prima era un falso avviso su ogni Dockerfile con la ARG in uno stage base
- nomi di stage confrontati senza distinzione di maiuscole, come in Docker
- collaudo su un Dockerfile sintetico (ARG globale, padre, fratello,
  nipote, ENV, predefinite, commenti nelle continuazioni): segnala solo i
  due casi attesi

Fixes #10 @25m
refs PZeta_Touch/flux-repo#133
2026-09-11 21:25:21 +02:00
LucaZanni 8949bc7f31 ✨ feat(ci): avviso sui Dockerfile col registry in minuscolo o ARG fuori stage
- quality-gates.yml: nuovo step prima dell'install che scansiona i Dockerfile
  del repository e segnala con ::warning file/riga, più una tabella nel job
  summary, (a) il registry @pzeta scritto pzeta_touch o pzeta e (b) le ARG
  usate in uno stage che non le dichiara
- solo avviso (continue-on-error, uscita sempre 0): bloccante oggi
  fermerebbe i ~46 repo che reggono solo perché pinnano npm 11; lo diventa
  con la tappa 2 di flux-repo#133
- analisi per stage in awk POSIX, collaudata anche con gawk --posix:
  scada-runtime 19 avvisi, pzeta-king 2, vue-pzportal 1, node-xmlvalidation 0

Fixes #9 @1h30m
refs PZeta_Touch/flux-repo#133
2026-09-11 21:21:24 +02:00
LucaZanni 81c871422e 🔧 fix(ci): la deroga al gate dei ruoli arriva allo step che deve saltare
- quality-gates.yml: `owns-auth-roles` esce dal campo `if:` dello step e viene
  letta come env `OWNS_AUTH_ROLES`. In posizione `if:` i valori `with:` del
  chiamante non raggiungono il contesto `inputs` di act_runner, quindi il gate
  bocciava proprio node-user-profiling, l'unico repo autorizzato a dichiarare
  ruoli: tre run rossi e ogni gate successivo saltato
- il nome del repository fa da rete di sicurezza accanto all'input: una deroga
  dichiarata e una constatata, cosi' regge anche se `inputs` non arrivasse
- verificato sui tre casi: deroga via input, deroga via nome con input vuoto,
  repo terzo con le stesse migrazioni (continua a fallire, nessuna regressione)

Fixes #8 @1h30m
2026-09-07 21:31:08 +02:00
LucaZanni 67fccd84e2 ✨ feat(ci): nessun modulo puo' dichiarare ruoli in auth.ruoli
- nuovo step in quality-gates.yml: cerca INSERT INTO auth.ruoli nei file .sql di
  migrations, seeds, sql e database/migrations, e fallisce spiegando cosa fare
  invece — dichiarare un gruppo d'area con i propri permessi, scegliendo il
  livello fra i tredici di piattaforma
- il contratto esisteva dal seed 13 di node-user-profiling e prevedeva questo
  controllo, che non era mai stato scritto: nove microfrontend lo hanno
  disatteso, 21 ruoli creati e 27 su 35 senza omonimo PostgreSQL. Un ruolo cosi'
  nel claim role del JWT e' un SET ROLE che non riesce, e l'utenza di collaudo
  del timesheet ne era la prova
- il boundary dopo `ruoli` tiene fuori auth.ruolipermessi; le righe di commento
  sono ignorate perche' spesso spiegano proprio questa regola
- una-tantum e rollback sono escluse: raccolgono delta generati e script di
  ritorno, fotografie di stati passati che riscrivere falserebbe
- nuovo input owns-auth-roles (default false): solo node-user-profiling, che
  possiede lo schema, lo mette a true. Unica deroga, ed e' esplicita
- verificato su tutti i 30 frontend con migrazioni e sui backend principali:
  nessuno fallisce dopo la ripulitura dei nove repo

Fixes #7 @1h
2026-08-28 10:40:25 +02:00
LucaZanni c0524722e4 🔧 fix(ci): allinea a PZeta_Touch il registry npm dei workflow riusabili
- .gitea/workflows/*.yml: il registry @pzeta scritto in ~/.npmrc passa da
  `pzeta_touch` a `PZeta_Touch` (12 file, 24 righe). E' la stessa causa dei
  Dockerfile: i package-lock.json della flotta risolvono i tarball su
  `.../api/packages/PZeta_Touch/npm/`, npm confronta gli URL come stringhe e
  con la grafia minuscola tratta il pacchetto come tarball remota (EALLOWREMOTE
  da npm 11) e non applica il _authToken
- e' il punto di massima leva: quality-gates.yml e docker-release.yml sono
  chiamati via `uses:` da 51 repo `node-*` ed eseguono `npm ci` sul runner
  PRIMA di `docker build`, quindi la release si ferma li' anche con il
  Dockerfile gia' corretto
- il REGISTRY delle immagini (`gitea.pzetatouch.it/pzeta_touch`) resta
  minuscolo: i nomi dei repository Docker devono esserlo, ed e' la grafia usata
  dai defaults di flux-repo

refs PZeta_Touch/flux-repo#129 @45m
2026-08-04 10:31:04 +02:00
LucaZanni dae2a74437 ✨ feat(ci): aggiungi l'input working-directory ai reusable workflow Node
- quality-gates, dependency-check, dependency-outdated, npm-publish e
  auto-release accettano ora working-directory (default "."), applicato via
  defaults.run a livello di job: copre tutti gli step run senza toccare gli
  step uses, che devono restare sulla root
- Allineate le varianti -github dei cinque workflow
- Sblocca i repo dove package.json non e' in root (pzeta-calendar in
  typescript/, pzeta-king in server/), che finora dovevano rinunciare ai
  template e reinlineare i job, perdendo la working-directory a ogni
  riallineamento
- Retrocompatibile: con l'input omesso il comportamento resta identico

refs #4
2026-08-01 19:30:03 +02:00
LucaZanni b21c3877c6 chore(ci): aggiorna node-version default a 24.16.0
Node.js 24.16.0 LTS sostituisce 22.17 come versione di default in tutti i workflow.
2026-06-06 14:24:11 +02:00
LucaZanni 392cdf2580 fix(ci): sostituisce gitea.com/actions/cache con github.com in tutti i workflow
gitea.com/actions/cache@v4 restituisce HTTP 500 in modo intermittente.
github.com/actions/cache@v4 già usato dal runner per altri step (setup-java, ecc.).
2026-06-06 14:05:29 +02:00
LucaZanni 3b49d18d5b fix(ci): aggiunge input npm-version per compatibilità lockfile npm@11
- quality-gates.yml: nuovo input npm-version con step condizionale upgrade
- docker-release.yml: idem
- examples/documentazione: ci.yml e release.yml passano npm-version: '11'

Fixes #2 @25m
2026-06-06 13:36:22 +02:00
LucaZanni 0f7688ac5e chore(ci): aggiorna action versions, fix auto-release e migrazione self-hosted
- Aggiorna checkout v4→v6, setup-python v5→v5.2.0, setup-android v3→v4
- Aggiorna upload-artifact v3→v4, docker/login-action v3→v4
- Aggiunge needs su auto-release in tutti gli esempi (fix esecuzione parallela)
- Aggiunge token esplicito nel checkout come workaround bug Gitea #31900
- Aggiunge job dependency-outdated mancante in libreria-npm/maintenance.yml
- Aggiorna schedule: libreria-npm mercoledì 02:00, microservizio lunedì 02:00
- Migra tutti i riferimenti da gitea.com/Punga78 a gitea.pzetatouch.it/devops

Fixes #1 @3h
2026-06-06 13:21:01 +02:00
LucaZanni 8b292ae35d 🎉 feat(ci): setup Gitea Actions riutilizzabili cross-repo
- Aggiunti 6 workflow condivisi in .gitea/workflows/ con trigger workflow_call
- Implementati: quality-gates, npm-publish, docker-release, auto-release, dependency-check, branch-cleanup
- Aggiunti esempi consumer per microservizio e libreria-npm (ci, release, maintenance)
- Allineato npm run lint:check su tutti i workflow
- Corretti GITEA_TOKEN, gitea.* context, GITHUB_REF/GITHUB_OUTPUT per compatibilità Gitea
- Rimosso needs: tra job reusable (Gitea bug #31900), path uses: con .gitea/workflows/

Fixes #1 @1d
2026-03-24 17:04:22 +01:00