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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rendere le variabili read-only in una pipeline di Azure DevOps
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Cancellare una run di un workflow di GitHub
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Managed deployment strategy in Azure DevOps
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Creare una libreria CSS universale: Nav menu
Utilizzare Container Queries nominali