使用 Azure 管道标记 docker 个容器
Tagging docker containers with azure pipelines
我有一个多级 YAML Azure 管道。我根据构建 ID 标记我的图像。在作业失败并且我需要重新运行它之前,它一直有效。
在 re运行 上,我得到一个新增加的构建 ID,因此它不再引用原始 运行.
中使用的相同 docker 图像
$(Build.BuildId)
这附近有没有?
Re-running 工作或阶段没有改变 Build.BuildId
。我使用下面的管道检查了这个。但是,如果您想 运行 整个管道用于相同的构建 ID,您可以尝试使用 运行 时间参数并自行提供标签名称(如下所示):
parameters:
- name: tagName
type: string
default: ' '
trigger: none
pr: none
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: A
jobs:
- job: A
steps:
- pwsh: |
$tagName = '$(Build.BuildId)'
if('${{ parameters.tagName }}' -ne ' ') {
$tagName = '${{ parameters.tagName }}'
}
echo $tagName
- job: B
steps:
- bash: echo "B"
- stage: B
jobs:
- job: A
steps:
- pwsh: |
$tagName = '$(Build.BuildId)'
if('${{ parameters.tagName }}' -ne ' ') {
$tagName = '${{ parameters.tagName }}'
}
echo $tagName
- bash: exit 1
- job: B
steps:
- bash: echo "B"
您可以展开舞台并重新运行舞台,这不会更改 buildId:
我有一个多级 YAML Azure 管道。我根据构建 ID 标记我的图像。在作业失败并且我需要重新运行它之前,它一直有效。
在 re运行 上,我得到一个新增加的构建 ID,因此它不再引用原始 运行.
中使用的相同 docker 图像$(Build.BuildId)
这附近有没有?
Re-running 工作或阶段没有改变 Build.BuildId
。我使用下面的管道检查了这个。但是,如果您想 运行 整个管道用于相同的构建 ID,您可以尝试使用 运行 时间参数并自行提供标签名称(如下所示):
parameters:
- name: tagName
type: string
default: ' '
trigger: none
pr: none
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: A
jobs:
- job: A
steps:
- pwsh: |
$tagName = '$(Build.BuildId)'
if('${{ parameters.tagName }}' -ne ' ') {
$tagName = '${{ parameters.tagName }}'
}
echo $tagName
- job: B
steps:
- bash: echo "B"
- stage: B
jobs:
- job: A
steps:
- pwsh: |
$tagName = '$(Build.BuildId)'
if('${{ parameters.tagName }}' -ne ' ') {
$tagName = '${{ parameters.tagName }}'
}
echo $tagName
- bash: exit 1
- job: B
steps:
- bash: echo "B"
您可以展开舞台并重新运行舞台,这不会更改 buildId: