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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Abilitare .NET 10 su Azure App Service e Azure Functions
Generare una User Delegation SAS in .NET per Azure Blob Storage
Implementare il throttle in JavaScript
Ospitare n8n su Azure App Service
Integrare modelli AI in un workflow di GitHub
Le cron expression di un workflow di GitHub
Escludere alcuni file da GitHub Copilot
DevSecOps per .NET: dalla teoria alla pratica
Utilizzare Containers in .NET Aspire
Selettore CSS :has() e i suoi casi d'uso avanzati


