【发布时间】:2021-02-17 08:22:20
【问题描述】:
我有在管道资源上触发的发布管道,但希望发布管道被标记为触发管道(构建)信息,因此我们可以过滤何时部署的内容。
我正在尝试使用日志命令使用 apiname 变量标记发布管道,但我无法看到它们或使用它们进行过滤。
下面是我的发布管道代码
resources:
pipelines:
- pipeline: pipeline1
project: appcom
source: pipeline-api
trigger:
branches:
- develop
- feat/*
- pipeline: pipeline2
project: appcom
source: pipeline2-api
trigger:
branches:
- develop
- feat/*
variables:
- name: alias
value: $(resources.triggeringAlias)
stages:
- stage: ScanImage
jobs:
- job: ScanImage
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: echo $(alias)
- task: Bash@3
inputs:
targetType: 'inline'
script: |
if [ "$(alias)" == "pipeline1" ]; then
echo "##vso[task.setvariable
variable=apiname]$(resources.pipeline.pipeline1.pipelineName)"
echo "##vso[task.setvariable
variable=dockertag]$(resources.pipeline.pipeline1.sourceCommit)
| cut -c -7"
echo "##vso[task.setvariable variable=helmpath]P02565Mallorca/pipeline1-api"
elif [ "$(alias)" = "pipeline2" ]; then
echo "##vso[task.setvariable
variable=apiname]$(resources.pipeline.pipeline2.pipelineName)"
echo "##vso[task.setvariable
variable=dockertag]$(resources.pipeline.pipeline2.sourceCommit)
| cut -c -7"
echo "##vso[task.setvariable variable=helmpath]P02565Mallorca/pipeline2-api"
fi
- script: echo "##vso[build.addbuildtag]$(apiname)"
发布管道运行:
[![在此处输入图片描述][1]][1]
过滤时不显示任何标签,只是说没有标签
下面是设置标签的bash脚本截图 [![在此处输入图片描述][2]][2]
但无法过滤正在使用此标记。 [1]:https://i.stack.imgur.com/BVjGS.png [2]:https://i.stack.imgur.com/YaXJJ.png
【问题讨论】:
-
您能分享构建结果以查看失败的步骤吗?
-
但我的要求是我需要用 apiname 标记这个发布管道。在上面的代码中,你可以将 apiname 设置为带有预定义变量的变量。是否可以用 apiname 标记???
-
@pranathi。当然。你能行的。由于您已将 apiname 设置为变量,因此您可以直接在 Rest API URL 中使用它,格式为 $(apiname)。请参考我的回答
标签: azure-devops azure-pipelines azure-pipelines-release-pipeline