Nello script precedente su questo canale, abbiamo avuto modo di vedere come sia possibile convidere una variabile creata all'interno di un task, per poterla riutilizzare all'interno di altri task contenuti nello stesso job e nello stesso stage di una determinata pipeline.
Tuttavia, può talvolta diventare utile poter condividere la variabile tra più job all'interno della stessa pipeline, così che questa venga riutilizzata in contesti o su agent differenti per eseguire azioni collegate fra di loro logicamente.
Come abbiamo visto precedetemente, possiamo creare una variabile all'interno di uno script in questo modo:
echo "##vso[task.setvariable variable=myVariableName]$myVar"
Per poterla utilizzare fra più job, dobbiamo solamente crearla come variabile di output, specificando l'attributo isOutput:
echo "##vso[task.setvariable variable=myVariableName;isOutput=true]$myVar"
A questo punto la variabile sarà visibile ai job successivi tramite la reference a dependencies.{jobName}.outputs['{stepName}.{varName}']:
- job: A steps: - script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value" name: setvarStep - script: echo $(setvarStep.myOutputVar) name: echovar - job: B dependsOn: A variables: myVarFromDeploymentJob: $[ dependencies.A.outputs['setvarStep.myOutputVar'] ] steps: - script: "echo $(myVarFromDeploymentJob)" name: echovar
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Recuperare le subissue e il loro stato di completamento in GitHub
Recuperare gli audit log in Azure DevOps
Generare una User Delegation SAS in .NET per Azure Blob Storage
Creare una libreria CSS universale: Immagini
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Triggerare una pipeline su un altro repository di Azure DevOps
Controllare la telemetria con .NET Aspire