Abbiamo già visto in passato come sia semplice terminare l'esecuzione di un workflow di GitHub, in quel caso per non proseguire l'esecuzione e lanciare un errore qualora la soglia minima della code coverage non venga raggiunta (https://www.dopsitalia.com/script/78/Terminare-Esecuzione-Workflow-GitHub.aspx). In alcuni casi, però, può essere altrettanto utile cancellare un workflow in esecuzione, piuttosto che terminarlo con un errore.
Per terminare l'esecuzione del workflow in corso senza un codice di errore possiamo fare riferimento alla CLI e alle REST API di GitHub:
- name: Cancel run
shell: bash
run: |
gh api --method POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/OWNER/REPO/actions/runs/${{ github.run_id }}/cancelCome possiamo vedere, infatti, si è sufficiente specificare il nome del repository, l'owner dell'organizzazione e l'id della run in corso.
Poiché questo genere di cancellazione è di tipo "graceful", talvolta è possibile che non sia sufficiente a terminare per davvero l'esecuzione, che potrebbe bloccarsi. In questi casi possiamo terminare forzatamente l'esecuzione facendo la stessa chiamata ma rimandandola all'endpoint "force-cancel" anziché "cancel".
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Supportare la crittografia di ASP.NET Core con Azure Container App
Importare repository da Bitbucket a GitHub Enterprise Cloud
Rendere le variabili read-only in una pipeline di Azure DevOps
Analizzare il contenuto di una issue con GitHub Models e AI
Pubblicare un MCP Server in GitHub MCP Registry
Introduzione a GitHub Copilot CLI
Gestire pubblicazione Kubernetes tramite .NET Aspire
Evidenziare una porzione di testo in un pagina dopo una navigazione
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Definire il colore di una scrollbar HTML tramite CSS
Utilizzo delle stepped value functions nel CSS
Configurare automaticamente un webhook in Azure DevOps


