【发布时间】:2021-05-25 19:51:10
【问题描述】:
我是 azure 管道的新手,目前正在尝试将变量传递给以后的作业。这是当前的 sn-p,我正在尝试使用 maven 帮助从 pom 文件中提取项目版本:评估插件。 pomVersion 变量已填充,但在第二个作业的同一步骤或后续步骤中不可用,通过 projectVersionDynamic 变量。
stages:
- stage: FirstStage
jobs:
- job: FirstJob
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
pomVersion=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout`
echo $pomVersion ##Prints semantic version 2.27.0-SNAPSHOT
echo '##vso[task.setvariable variable=projectVersionDynamic;isOutput=true]$pomVersion'
echo '##vso[task.setvariable variable=projectVersionStatic;isOutput=true]2.27.0'
echo $(Task1.projectVersionDynamic) ##Error message
echo $projectVersionDynamic ##Is empty
name: Task1
displayName: Task1 in JobOne of FirstStage
- job: SecondJob
dependsOn: FirstJob
variables:
DynVar: $[ dependencies.FirstJob.outputs['Task1.projectVersionDynamic'] ]
StaVar: $[ dependencies.FirstJob.outputs['Task1.projectVersionStatic'] ]
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
echo 'SecondJob'
echo $(DynVar) ##Is empty
echo $DynVar ##Is empty
echo $(StaVar) ##Prints 2.27.0
echo $StaVar ##Is empty
displayName: Task in JobTwo of FirstStage
观察:projectVersionDynamic 值未填充,并且在同一任务或后续任务中或后续作业/阶段中不可用。但是,静态变量会毫无问题地填充到 projectVersionStatic 中。
是否可以在 azure 管道中为用户定义的变量设置动态值,还是我做错了什么?我在 Stages 部分下看到了一个示例 here,它似乎正在工作。
【问题讨论】:
标签: azure-devops azure-pipelines