Eseguire ripetutamente uno script in una pipeline di Azure DevOps

di Matteo Tumiati, in DevOps,

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

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