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
Configurare policy CORS in Azure Container Apps
Sostituire la GitHub Action di login su private registry
Implementare il throttling in ASP.NET Core
Generare token per autenicarsi sulle API di GitHub
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Come migrare da una form non tipizzata a una form tipizzata in Angular
Evitare la command injection in un workflow di GitHub
Sottoscrizione agli eventi sul contenitore in JavaScript
Eseguire attività pianificate con Azure Container Jobs
Creare form tipizzati con Angular
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Usare il versioning con i controller di ASP.NET Core Web API
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