- 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
- stesso step di quality-gates.yml, identico, prima dell'install: i sei
repository sulla variante -github, fra cui vue-pzportal, ne restavano
fuori
- solo bash, indipendente da dove si scaricano le action; solo avviso come
nell'originale
Fixes#11 @25m
refs PZeta_Touch/flux-repo#133
- 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
- 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
- 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
- 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
- Nuovo step "Inject Android version" dopo il sync Capacitor: riscrive versionName e versionCode in android/app/build.gradle prima della build
- versionCode derivato come major*10000 + minor*100 + patch, monotono crescente fra release; pre-release e build metadata scartati dal calcolo ma mantenuti nel versionName
- Nuovo input opzionale version-code per forzare un valore esplicito
- Supporto Groovy e Kotlin DSL; fallisce con diagnostica se la piattaforma manca, la versione non e' semver, minor/patch superano 99 o l'iniezione non produce il valore atteso
- Allineata la variante -github, corpo dello step identico
Fixes#5 @1h30m
- .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
- 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
- crea gemelli X-github.yml per ogni reusable con action da github.com (fallback mirror gitea.com)
- python-dependency-check/outdated: audit in venv isolata (fix falsi positivi da runner ML)
- python-dependency-check/outdated: deduplica issue (commento invece di nuova issue)
- examples: aggiungi ci-github.yml e release-github.yml in tutte le cartelle
Fixes#3 @3h
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.).
- Aggiunto org.opencontainers.image.source con URL del repository
- Aggiunto org.opencontainers.image.revision con SHA del commit
- Aggiunto org.opencontainers.image.version con versione del pacchetto
- Applicato a docker-release.yml e python-docker-release.yml
@25m
- Sostituisce build-args con secrets in docker-release.yml per compatibilità
con Dockerfile che usa --mount=type=secret,id=npm_token
- Aggiunge runs-on: catthehacker-latest negli esempi (workaround Gitea bug #34986)
- aggiunto esempio workflow CI per python con quality gates
- aggiunto esempio workflow manutenzione con branch cleanup, audit sicurezza e check pacchetti obsoleti
- aggiunto esempio workflow release per build docker e auto-release gitea
📦 build(shared-actions): aggiungi shared-actions python per CI/CD
- aggiunto python-quality-gates.yml per lint, format, type check e test
- aggiunto python-auto-release.yml per changelog e rilascio automatico
- aggiunto python-docker-release.yml per build e push immagini docker
- aggiunto python-dependency-check.yml per audit sicurezza dipendenze
- aggiunto python-dependency-outdated.yml per verifica pacchetti obsoleti
- aggiungi workflow separato per controllo dipendenze obsolete
- aggiorna maintenance.yml per distinguere tra audit sicurezza e check obsolete
- aggiorna nomi e struttura dei job per maggiore chiarezza
- carica artifact Android con nome versione dinamico
- separa issue sicurezza da quelle di pacchetti obsoleti in CI
- migliora trigger per job di manutenzione periodica【workflows】
- gitea.com/actions/upload-artifact@v3 usa @actions/artifact v2.0.0+ non compatibile con GHES/Gitea
- github.com/actions/upload-artifact@v3 usa @actions/artifact v1.x compatibile
Fixes#6 @15m
- upload-artifact@v4 usa @actions/artifact v2.0.0+ che richiede API GitHub.com
- Gitea/GHES non supporta questa versione, causando errore GHESNotSupportedError
Fixes#4 @25m
- Aggiunto step idempotente `npx cap add android || true` prima di `npx cap sync android`
- Risolve il fallimento quando la directory android/ non è nel repository del consumer
- Il comando è sicuro: se android/ esiste già, emette solo un warning
refs #0 @25m
- elimina il file release.yml perché non più utilizzato nel flusso di lavoro
🔧 chore(ci): aggiorna trigger workflow CI
- aggiungi supporto per pull request su main
- ignora file markdown e cartella docs nei trigger
- migliora gestione delle branch monitorate
- Aggiunto package.json con versione 1.0.0
- Nuovo workflow release.yml standalone: crea release Gitea su tag v*
- Aggiornamento automatico tag major floating (v1 → latest v1.x.x)
- Esempi aggiornati da @main a @v1 (tag major stabile)
Flusso di release:
git tag v1.0.0 && git push origin v1.0.0
→ crea release Gitea con changelog
→ aggiorna tag floating v1
- Aggiunto input 'runner' con default 'catthehacker-latest'
- Permette ai consumer di specificare un runner diverso
- Aggiornato esempio microservizio con runner esplicito
- I package con scope npm (@pzeta/nome) generano tag Docker invalidi
- Aggiunto sed per strippare '@scope/' prima di costruire il tag
- Risultato: gitea.pzetatouch.it/pzeta_touch/telegram-file-bot:1.0.1