Uno dei problemi più comuni che ci si ritrova ad affrontare quando si lavora in ambienti estremamente complessi ed automatizzati delle enterprise, è che spesso abbiamo configurato decine o centinaia di workflow automatici, ma difficilmente ci sono delle azioni che vengono intraprese qualora qualcosa smettesse di funzionare. Capita molto più spesso di quello che si pensa, infatti, che i workflow vengono poi abbandonati a loro stessi e, se nessuno si registra alle notifiche, perchè magari sono troppe ed è faticoso creare una regola in Outlook, allora sarà impossibile capire che un workflow ha smesso improvvisamente di funzionare correttamente. Magari ce ne accorgiamo, ma dopo settimane.
Per questo motivo, potrebbe essere utile fare in modo che, qualora si verifichi qualche errore in un workflow, venga creata automaticamente una issue, così da avere visione direttamente all'interno del backlog:
- name: Step is going to fail run: exit 1 - name: Create issue to track error shell: pwsh if: failure() run: gh issue create --title "The workflow stopped working!" --body "An issue occurred in ${{ github.workflow }} workflow" --repo ${{ github.repository }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
In questo caso stiamo simulando l'errore in uno step specifico, ma con un po' più di logica è comunque piuttosto semplice capire se il workflow ha avuto qualche problema durante la sua esecuzione in generale.
Per creare la issue, poichè abbiamo già il token di GitHub a disposizione nel workflow, abbiamo sfruttato la command line. Con un singolo comando abbiamo creato la issue nello stesso repository di dove si trova il workflow e il contenuto stesso è dinamico e dipende dal nome del workflow stesso andato in fallimento.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Recuperare l'ultima versione di una release di GitHub
Usare un KeyedService di default in ASP.NET Core 8
Applicare un filtro per recuperare alcune issue di GitHub
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Ottenere un token di accesso per una GitHub App
Triggerare una pipeline su un altro repository di Azure DevOps
Utilizzare i primary constructor in C#
Eseguire le GitHub Actions offline
Disabilitare automaticamente un workflow di GitHub (parte 2)
I più letti di oggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Ricavare lo spazio occupato su disco dal nostro sito
- Realizzare siti sicuri con ASP.NET Web Pages
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side