L'uso dei template nelle pipeline YAML è obbligatorio se vogliamo riutilizzare al massimo il codice oppure estendere le pipeline per includere, ad esempio, check di compliance o security a livello di organization e così via. Quando creiamo un template, quasi sicuramente abbiamo bisogno anche di creare dei parametri per fare in modo che questo sia, appunto, riutilizzabile.
Tutti i parametri che vengono definiti in un template devono avere necessariamente un nome, un tipo e non possono essere opzionali. Proprio per questo motivo, un valore di default può essere applicati ad essi per specificarne in maniera implicita anche il tipo:
parameters: - name: pool type: string default: Azure Pipelines values: - Azure Pipelines - private-pool-1 - private-pool-2 - name: runIf displayName: Run Tests? type: boolean default: false - name: runFor type: number default: 1 steps: - script: echo 'Agent di esecuzione: ${{ parameters.pool }}' - script: echo 'Esecuzione script: ${{ parameters.runIf }}' - script: echo 'Script eseguito ${{ parameters.runFor }} volte'
Come si può vedere dall'esempio riportato sopra, abbiamo definito il tipo string per il parametro pool, a cui abbiamo poi limitato il numero di valori assegnabili alla stringa ai tre definiti nella sezione values. Quando la pipeline parte ed il template viene validato ed espanso (con la sostituzione dei parametri), la stringa verrà valutata e se non sarà valida (contenuta in quei valori proposti), allora la pipeline si fermerà immediatamente con un errore e non proseguirà nell'esecuzione.
Allo stesso modo abbiamo dichiarato anche un parametro runIf, di tipo booleano, che con i soli valori true/false, come in qualsiasi linguaggio di programmazione, ci permette di identificare rapidamente se eseguire, ad esempio, uno step oppure no. Similarmente, anche il parametro runFor, dichiarato di tipo numerico, avrà una validazione, anche se in questo caso sui numeri. Se qualche valore dovesse essere passato come stringa allora non ci sarà una conversione implicita e la pipeline terminerà con errore.
Tra i tipi supportati nella validazione troviamo string (può essere limitato ad alcuni valori di default), number (può essere limitato ad alcuni valori di default), boolean, object (per rappresentare un qualsiasi oggetto YAML), step o stepList, job o jobList, deployment o deploymentList, stage o stageList.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: i bottoni
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Creare una libreria CSS universale: Clip-path
Code scanning e advanced security con Azure DevOps
Creare un webhook in Azure DevOps
Utilizzare i primary constructor in C#
Ottenere un token di accesso per una GitHub App
Migliorare la sicurezza dei prompt con Azure AI Studio
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Disabilitare automaticamente un workflow di GitHub (parte 2)
Applicare un filtro per recuperare alcune issue di GitHub
Generare token per autenicarsi sulle API di GitHub
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