guardia Dockerfile: se l'awk del runner non la esegue, il controllo delle ARG tace invece di dirlo #12

Closed
opened 2026-09-11 19:38:04 +00:00 by LucaZanni · 0 comments
Owner

Seguito delle #9, #10, #11.

L'analisi delle ARG è un programma awk eseguito con 2>/dev/null. Se l'awk del runner non lo accetta (l'immagine catthehacker/ubuntu:act-latest potrebbe usare mawk invece di gawk), l'output resta vuoto e la guardia dice «in regola» su qualunque Dockerfile. Un run pulito non distingue le due cose.

Con gawk --posix l'analisi funziona, ma stampa su stderr un avviso su \{ nella regex: segno che la sintassi non è portabile al 100%.

Correzione:

  • la regex usa [$][{]? al posto di \$\{?, portabile senza sequenze di escape;
  • all'avvio la guardia esegue l'analisi su un Dockerfile di prova con una ARG fuori scope nota. Se non la riconosce, lo dice con un ::warning, salta il controllo delle ARG, tiene quello del registry e non dichiara più «in regola» ciò che non ha potuto leggere.

Refs PZeta_Touch/flux-repo#133.

Seguito delle #9, #10, #11. L'analisi delle ARG è un programma awk eseguito con `2>/dev/null`. Se l'awk del runner non lo accetta (l'immagine `catthehacker/ubuntu:act-latest` potrebbe usare mawk invece di gawk), l'output resta vuoto e la guardia dice «in regola» su qualunque Dockerfile. Un run pulito non distingue le due cose. Con `gawk --posix` l'analisi funziona, ma stampa su stderr un avviso su `\{` nella regex: segno che la sintassi non è portabile al 100%. **Correzione**: - la regex usa `[$][{]?` al posto di `\$\{?`, portabile senza sequenze di escape; - all'avvio la guardia esegue l'analisi su un Dockerfile di prova con una ARG fuori scope nota. Se non la riconosce, lo dice con un `::warning`, salta il controllo delle ARG, tiene quello del registry e non dichiara più «in regola» ciò che non ha potuto leggere. Refs PZeta_Touch/flux-repo#133.
LucaZanni added spent time 25 minutes 2026-09-11 19:38:18 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Total Time Spent: 25 minutes
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: devops/shared-actions#12