我试图通过变量与作业之间的阶段是使用模板在蔚蓝色管道,尝试了很多方法,但仍然没有设法实现它。
我的工作是检查一些东西,并创建vso task.variable,这些变量我要传递到下一阶段
蓝色管道.yaml
stages:
- stage: CheckProjectType
displayName: Check Project Type
jobs:
- template: jobs/checkprojectype.yaml@devops
- stage: PrintProjectType
dependsOn: CheckProjectType
displayName: Print Project Type
jobs:
- template: jobs/buildproject.yaml@devops
parameters:
outputval: $[ stagedependencies.CheckProjectType.outputs['SetValueStep.projecttype'] ]
检查项目类型.yaml
jobs:
- job: CheckProjectType
displayName: Check Project Type
steps:
- bash: |
if [ -f *.xml ]; then
echo "JAVA"
elif [ -f *.json ]; then
echo "json file found , Nodejs Project Will Be Built"
echo "##vso[task.setvariable variable=projecttype;]nodejs"
elif [ -f *.py ]; then
echo "Python"
else
echo "Not Found"
fi
name: itay
displayName: Checking Current Location
生成项目.yaml
jobs:
- job: BuildProject
variables:
- name: myvar123
value: ${{ parameters.outputval }}
steps:
- bash: echo $(myvar123)
我希望得到nodejs,但是我什么也没得到,echo是空的
1条答案
按热度按时间yhived7q1#
如果您想在将来的阶段中共享一个 *task变量 *,它需要一个额外的
isOutput=true
属性,如本文文档中所述检查项目类型.yml
还要仔细检查@tom-w remark和,因为您的代码示例似乎不适合那里的引用。
在本例中:
应为: