azure - Azure DevOps 管道 - 获取上一阶段的内部版本号
问题描述
我有一个包含 2 个阶段的 yml 管道:
- stage:
- stage:
我的第二阶段需要参考上$(Build.BuildNumber)
一阶段的。如何做到这一点?我的理解是输出变量的范围是同一阶段,不能跨阶段使用。
试图从 stageDependencies 中提取:
stages:
- stage: BuildPublish
displayName: "Build & Publish"
jobs:
- job: BuildPublishJob
displayName: "Build & Publish"
steps:
- script: |
echo "Recording MSI version"
echo "##vso[task.setvariable variable=msiVersion;isOutput=true]$(Build.BuildNumber)"
name: MsiVersion
- script: echo $(MsiVersion.msiVersion)
name: echovar
- stage: DeployInstallerTest
displayName: "Deploy Installer Test"
jobs:
- job:
displayName: "Deploy Installer Test"
steps:
- task: AzurePowerShell@5
inputs:
azureSubscription: 'Spektrix Non-Prod'
ScriptType: 'InlineScript'
Inline: |
$msiVersion = stageDependencies.BuildPublish.BuildPublishJob.outputs['MsiVersion.msiVersion']
azurePowerShellVersion: 'LatestVersion'
失败:
##[错误]术语“stageDependencies.BuildPublish.BuildPublishJob.outputs[MsiVersion.msiVersion]”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
解决方案
最近变了:
stages:
- stage: A
jobs:
- job: JA
steps:
- script: |
echo "This is job Foo."
echo "##vso[task.setvariable variable=doThing;isOutput=true]Yes" #The variable doThing is set to true
name: DetermineResult
- script: echo $(DetermineResult.doThing)
name: echovar
- job: JA_2
dependsOn: JA
condition: eq(dependencies.JA.outputs['DetermineResult.doThing'], 'Yes')
steps:
- script: |
echo "This is job Bar."
#stage B runs if DetermineResult task set doThing variable n stage A
- stage: B
dependsOn: A
jobs:
- job: JB
condition: eq(stageDependencies.A.JA.outputs['DetermineResult.doThing'], 'Yes') #map doThing and check if true
variables:
varFromStageA: $[ stageDependencies.A.JA.outputs['DetermineResult.doThing'] ]
steps:
- bash: echo "Hello world stage B first job"
- script: echo $(varFromStageA)
但是,请注意,在阶段级别stageDependencies
的条件下不可用。当然,您可以使用不仅在条件。stageDependencies
推荐阅读
- c# - Unity - 错误构建播放器,因为脚本在编辑器中有编译错误
- jquery - 邮递员发布请求给出正确的结果,但 ajax 发布给出 Count=0
- reactjs - ColumnsDirective 的列值在动态添加列时未显示
- ruby-on-rails - Rails 邮件程序未发送
- aem - 如何在吊索模型中获取当前页面
- php - 尝试在php
中回显“”时如何停止出现标签? - javascript - Vanilla JS - 遍历列表并插入元素会导致无限循环错误
- python - 解码字符熊猫
- video - 如何使用ffmpeg分块下载m3u8?
- kubernetes - 如何将 VLAN 附加到 kubernetes pod?