🐛 fix(ci): la guardia Dockerfile ignora le variabili assegnate nel RUN

- in un RUN espande la shell: una variabile assegnata nel comando stesso
  (VERSIONE="$(...)" && ... ${VERSIONE}) non è la ARG omonima. Era un falso
  avviso su algorithmic-trading, venues/ibkr-gateway/Dockerfile:143
- COPY, LABEL e le altre istruzioni espanse da Docker restano controllate
- collaudo con gawk e gawk --posix: algorithmic-trading 0 avvisi,
  pzeta-king prima della correzione 2, scada-runtime su main 10, Dockerfile
  sintetici con gli esiti attesi; bash -n sullo step estratto dallo YAML

Fixes #13 @25m
refs PZeta_Touch/flux-repo#133
This commit is contained in:
LucaZanni
2026-09-11 21:40:53 +02:00
parent 715860c357
commit 5973ec9fcc
2 changed files with 6 additions and 0 deletions
@@ -118,6 +118,9 @@ jobs:
while (match(s, /[$][{]?[A-Za-z_][A-Za-z0-9_]*/)) {
v = substr(s, RSTART, RLENGTH); sub(/^[$][{]?/, "", v)
s = substr(s, RSTART + RLENGTH)
# In un RUN espande la shell: una variabile assegnata nel comando
# stesso (VERSIONE="$(...)" && ... ${VERSIONE}) non va scambiata per la ARG.
if (kw == "RUN" && match(rest, "(^|[^A-Za-z0-9_$])" v "=")) continue
if ((v in allargs) && !(v in scope) && !(v in predefined) && !((ln, v) in seen)) {
seen[ln, v] = 1
printf "%d\t%s\t%s\n", ln, v, stage
+3
View File
@@ -197,6 +197,9 @@ jobs:
while (match(s, /[$][{]?[A-Za-z_][A-Za-z0-9_]*/)) {
v = substr(s, RSTART, RLENGTH); sub(/^[$][{]?/, "", v)
s = substr(s, RSTART + RLENGTH)
# In un RUN espande la shell: una variabile assegnata nel comando
# stesso (VERSIONE="$(...)" && ... ${VERSIONE}) non va scambiata per la ARG.
if (kw == "RUN" && match(rest, "(^|[^A-Za-z0-9_$])" v "=")) continue
if ((v in allargs) && !(v in scope) && !(v in predefined) && !((ln, v) in seen)) {
seen[ln, v] = 1
printf "%d\t%s\t%s\n", ln, v, stage