Passare alla pipeline YAML porta diversi vantaggi, come abbiamo avuto modo di vedere in passato. Uno di questi è sicuramente la possibilità di utilizzare i template per riutilizzare diverse parti di codice, così come avviene in C# per le funzioni. Esattamente come in C# (e in altri linguaggi di programmazione), è infatti possibile richiamare uno stesso task (o una serie di essi) in sequenza sfruttando un classico "ciclo".
Supponendo di dover eseguire N script di SQL all'interno di un database, possiamo pensare di passare i nomi dei file come input a livello di parametri:
parameters: - name: listOfSqlScripts type: object default: - one.sql - two.sql
E quindi, al contrario di quanto avviene con le pipeline "classiche", definite tramite UI, in cui dobbiamo procedere a copia-incolla e cambiare tutti i parametri, con YAML possiamo applicare un ciclo each a tutti i task che dovranno essere ripetuti. In questo caso, andiamo a stampare il nome del file SQL che verrà eseguito sul database in oggetto:
steps: - ${{ each value in parameters.listOfSqlScripts }}: - script: echo ${{ value }}
Il codice stamperà, come ci aspettiamo, one.sql al primo giro e two.sql al secondo. Supponendo che ci siano N task da effettuare come parte dello stesso ciclo, come operazioni in sequenza (immaginiamo la stampa del file e poi l'operazione vera e propria), non servirà creare più cicli identici, ma sarà più che sufficiente riutilizzare la stessa identazione a livello di codice YAML:
steps: - ${{ each value in parameters.listOfStrings }}: - script: echo ${{ value }} - script: sqlpackage.exe ...
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Generare una User Delegation SAS in .NET per Azure Blob Storage
Configurare lo startup di applicazioni server e client con .NET Aspire
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Managed deployment strategy in Azure DevOps
Cancellare una run di un workflow di GitHub
Creare agenti facilmente con Azure AI Agent Service
Creare una custom property in GitHub
Eseguire i worklow di GitHub su runner potenziati
Combinare Container Queries e Media Queries