Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione

di Matteo Tumiati, in DevOps,

Abbiamo già visto in precedenza con uno script dedicato sul canale (https://www.dopsitalia.com/script/89/Impostare-Dinamicamente-Nome-Run-Workflow-GitHub.aspx) come sia facile per un workflow di GitHub impostare un nome dinamico per la run in esecuzione.

In questo script, invece, vediamo come sia possibile gestire il titolo in base a delle variabili che vengono calcolate dinamicamente all'avvio del workflow stesso. Infatti, quando viene impostato il run-name, tutto il context di GitHub è disponibile e quindi possiamo accedere a tutte le sue proprietà che sono visibili tramite lo step:

- run: echo "$GITHUB_CONTEXT"
  env:
    GITHUB_CONTEXT: ${{ toJson(github) }}

In GitHub, non c'è una vera e propria gestione degli statement di if, ma c'è un piccolo workaround che possiamo applicare per avere qualcosa di simile:

${{ <condition> && 'ifTrue' || 'ifFalse' }}

Vediamo quindi un esempio concreto, unendo tutte le cose, di come possiamo impostare il nome di una run in base al fatto che sia eseguita manualmente o invocata tramite API:

run-name: |
  ${{ github.event_name == 'repository_dispatch' && 'Invocato tramite API' || 
      github.event_name == 'workflow_dispatch' && 'Invocato manualmente' ||
      'Invocato con un trigger alternativo'
  }}

In questo modo diventa più semplice gestire più condizioni in contemporanea e impostare il titolo della run in base a queste.

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