Fissare una versione dell'agent nelle pipeline di Azure DevOps

di Matteo Tumiati, in DevOps,

In un recentissimo aggiornamento di Azure DevOps, al momento della scrittura di questo articolo, ancora in fase di rilascio worldwide, i nuovi agent di tipo ubuntu-latest hanno preso di fatto la versione ubuntu-24.04. Sebbene questa sia una operazione che viene fatta di norma, ogni volta che viene rilasciata una nuova versione degli agent e sono dichiarati "stable", questa volta la differenza è importante poichè con questa nuova versione sono stati rimossi alcuni software dall'agent che impattano gli sviluppatori Azure e .NET.

Infatti, Terraform e Mono non sono più installati di default in questa nuova versione. Se le nostre pipeline sono configurate per essere eseguite su 'ubuntu-latest' e usano un task fra MSBuild@1, NuGetCommand@2, Terraform o un qualsiasi script bash/powershell che fa riferimento a questi tool, è molto probabile che le nostre pipeline falliscano.

Le soluzioni in questo momento sono due. La prima, più semplice, è quella di fissare nelle nostre pipeline l'agent su una versione più "vecchia" di ubuntu, ad esempio ubuntu-22.04, quanto meno fino a quando non avremo avuto modo di testare le nostre pipeline e verificare che non ci siano problemi.

pool: 
  vmImage: 'ubuntu-22.04'

La seconda è quella di installare i tool che ci servono manualmente come step della pipeline, come per esempio:

- pwsh: sudo apt install mono-devel -y
  displayName: Install Mono

Bisogna prestare particolare attenzione perchè lo stesso behavior è applicato anche ai workflow di GitHub, in quanto condividono la stessa infrastruttura per quanto riguarda gli hosted-runners.

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