🔧 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
This commit is contained in:
@@ -54,8 +54,16 @@ jobs:
|
|||||||
echo "//gitea.pzetatouch.it/api/packages/PZeta_Touch/npm/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc
|
echo "//gitea.pzetatouch.it/api/packages/PZeta_Touch/npm/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc
|
||||||
|
|
||||||
- name: Nessun ruolo dichiarato fuori da node-user-profiling
|
- name: Nessun ruolo dichiarato fuori da node-user-profiling
|
||||||
if: ${{ !inputs.owns-auth-roles }}
|
|
||||||
shell: bash
|
shell: bash
|
||||||
|
env:
|
||||||
|
# La deroga stava nel campo `if:` dello step, e li' non arriva: nel
|
||||||
|
# workflow_call di act_runner i valori `with:` del chiamante non
|
||||||
|
# raggiungono il contesto `inputs` in quella posizione, quindi
|
||||||
|
# `!inputs.owns-auth-roles` restava vero anche con l'input a true e il
|
||||||
|
# gate falliva proprio in node-user-profiling, l'unico repository
|
||||||
|
# autorizzato a dichiarare ruoli. Letta come variabile d'ambiente la
|
||||||
|
# deroga arriva, e la si confronta come stringa.
|
||||||
|
OWNS_AUTH_ROLES: ${{ inputs.owns-auth-roles }}
|
||||||
run: |
|
run: |
|
||||||
# `auth.ruoli` appartiene a node-user-profiling e il suo contratto (seed
|
# `auth.ruoli` appartiene a node-user-profiling e il suo contratto (seed
|
||||||
# 13, esteso dalla migrazione 19) vieta agli altri moduli di crearne.
|
# 13, esteso dalla migrazione 19) vieta agli altri moduli di crearne.
|
||||||
@@ -66,6 +74,17 @@ jobs:
|
|||||||
# Nove microfrontend lo avevano disatteso: 21 ruoli, 27 su 35 senza
|
# Nove microfrontend lo avevano disatteso: 21 ruoli, 27 su 35 senza
|
||||||
# omonimo PostgreSQL. Questo controllo esiste perche' non si ripeta.
|
# omonimo PostgreSQL. Questo controllo esiste perche' non si ripeta.
|
||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
|
|
||||||
|
# Il nome del repository e' la rete di sicurezza della deroga: se
|
||||||
|
# nemmeno l'env dovesse arrivare, il proprietario dello schema si
|
||||||
|
# riconosce lo stesso e non resta bloccato dal proprio gate. Le due
|
||||||
|
# condizioni dicono la stessa cosa, una dichiarata e una constatata.
|
||||||
|
repo="${GITHUB_REPOSITORY:-}"
|
||||||
|
if [ "${OWNS_AUTH_ROLES:-}" = "true" ] || [ "${repo##*/}" = "node-user-profiling" ]; then
|
||||||
|
echo "Repository proprietario di auth.ruoli: controllo non applicabile."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
dirs=""
|
dirs=""
|
||||||
for d in migrations seeds sql database/migrations; do
|
for d in migrations seeds sql database/migrations; do
|
||||||
[ -d "$d" ] && dirs="$dirs $d"
|
[ -d "$d" ] && dirs="$dirs $d"
|
||||||
|
|||||||
Reference in New Issue
Block a user