Condividere una variabile tra job in una pipeline YAML di Azure DevOps

di Matteo Tumiati, in DevOps,

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

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