Disabilitare automaticamente un workflow di GitHub (parte 2)

di Matteo Tumiati, in DevOps,

In uno script precedente (https://www.dopsitalia.com/script/111/Disabilitare-Automaticamente-Workflow-GitHub.aspx) abbiamo visto come sia facile disabilitare automaticamente un workflow esistente. Questo, però, funziona solamente nel momento in cui il workflow è nello stato "Active", altrimenti la CLI di GitHub ci ritornerà un errore perché non abbiamo gestito opportunamente le chiamate. Di fatto, dobbiamo integrare lo script precedente con un po' di check di stato.

Non esiste un modo diretto per verificare che il workflow specifico sia in un attivo o disabilitato, perciò dobbiamo recuperare questa informazione da un'altra API (o comando della CLI):

gh workflow list --repo <org>/<repo-name> --all --json id,state --jq ".[] | select(.id == 1234) | .state"

Con una semplice query di JQ ci siamo estrapolati lo stato a partire dall'elenco completo dei workflow disponibili in un determinato repository. A questo punto, basta salvare questo valore in una variabile e controllare lo stato prima di procedere alla disabilitazione del workflow:

if [[ "$state" == "active" ]]; then
  echo "Disabling workflow..."
  gh workflow disable 1234 --repo <org>/<repo-name>
else
  echo "Workflow 1234 is already disabled. Skipping..."
fi

Per abilitarlo, invece, è sufficiente fare l'operazione contraria.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi