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
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Cambiare la chiave di partizionamento di Azure Cosmos DB
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Eseguire una query su SQL Azure tramite un workflow di GitHub
Applicare un filtro per recuperare alcune issue di GitHub
Migrare una service connection a workload identity federation in Azure DevOps
Triggerare una pipeline su un altro repository di Azure DevOps
Assegnare un valore di default a un parametro di una lambda in C#
Disabilitare automaticamente un workflow di GitHub (parte 2)
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub