In alcuni scenari potrebbe essere necessario dover fermare una build in corso. Alcuni esempi comprendono l'esecuzione in batch di determinati commit, tag di skip applicati dinamicamente sui commit, test di integrazione che falliscono, piuttosto che pipeline triggerate come risorse che hanno terminato la loro esecuzione con stato di failure e così via.
Purtroppo, non è possibile, secondo la documentazione, cancellare una build in corso. Tuttavia, c'è un workaround che consente di aggiornare lo stato della build sfruttando l'endpoint delle builds, come abbiamo visto negli script precedenti:
$uri = "https://dev.azure.com/$env:ORGANIZATION_NAME/$env:PROJECT_NAME/_apis/build/builds/$env:BUILD_ID?api-version=5.1" $json = @{ status = "Cancelling" } | ConvertTo-Json -Compress Invoke-RestMethod -Uri $uri -Method Patch -Headers @{Authorization = "Bearer $(System.AccessToken)"} -ContentType "application/json" -Body $json
Il trucco sta nell'aggiornare la build (identificata dalla variabile d'ambiente BUILD_ID) tramite chiamata REST, impostando tra le sue proprietà lo stato Cancelling. Una volta inviato il comando, la pipeline verrà terminata esattamente come quando procediamo manualmente all'operazione di cancellazione.
E' bene però sottolineare nuovamente che si tratta di un workaround e che, pertanto, questo esempio di codice potrebbe non funzionare più in futuro.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Utilizzare i primary constructor di C# per inizializzare le proprietà
Copiare automaticamente le secret tra più repository di GitHub
Linting di un Dockerfile con un workflow di GitHub
Eseguire operazioni con timeout in React
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Effettuare delete massive con Entity Framework Core 7
Evitare la command injection in un workflow di GitHub
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
I più letti di oggi
- Evitare il flickering dei componenti nel prerender di Blazor 8
- Rilasciata la Beta 2 di Visual Studio 2008
- tra pochi minuti inizia la keynote della seconda giornata. seguila live su http://aspitalia.com/mix-11 #mix11
- .@dbochicchio ora su #aspnetcore 2 a #netconfit https://aspit.co/netconf-17
- Utilizzare angular-cli per creare una direttiva in Angular 2
- Windows Vista: il ritorno di WinFS con la beta1
- .@CristianCivera tra poco su #azure con i suoi tips&tricks per lo sviluppatore web: https://aspit.co/web15-live #aspilive
- Le novità di C# 10