我们正在为项目使用Azure DevOps。我有一个azure-pipelines.yml
文件,该文件在docker image标签中使用了构建ID。但是,我们希望手动将docker映像ID作为构建定义的一部分添加。
是否可以将运行时参数从构建队列rest api传递到azure-pipelines.yml文件?
azure-pipelines.yml
trigger:
- master
pool:
vmImage: 'Ubuntu-16.04'
resources:
- repo: self
variables:
imageName: 'sampleapp1'
dockerhubNS: 'kumaresh'
steps:
- task: Docker@2
displayName: Login to Docker Hub
inputs:
command: login
containerRegistry: dh-connection
- task: Docker@2
displayName: Build and Push an image
inputs:
command: buildAndPush
dockerfile: Dockerfile
containerRegistry: dh-connection
repository: $(dockerhubNS)/$(imageName)
tag: $(appBuildNumber)
构建队列请求正文
"definition": {
"id": Build_Definition_Id,
"name": extractDefinitionName,
"type": "build"
},
"templateParameters": {
"tag": "1"
}
答案 0 :(得分:1)
是否可以从构建队列rest api传递运行时参数 到azure-pipelines.yml文件?
不确定运行时参数的确切含义。但是我想您正在寻找的是使用rest api建立队列,以及同时将动态变量传递到管道。
示例场景:
这是我的azure-pipeline.yml
:
parameters:
- name: tag
type: string
default: 'aaa'
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Docker@2
displayName: build
inputs:
containerRegistry: DockerHub
repository: {my docker repos}
command: build
Dockerfile: Docker/TestWebApi/Dockerfile
tags: '${{ parameters.tag }}'
- task: Docker@2
displayName: push
inputs:
containerRegistry: DockerHub
repository: {my docker repos}
command: push
tags: '${{ parameters.tag }}'
您可以看到,它所需的动态图像标签是参数tag
。当我使用 rest api :
https://dev.azure.com/{org}/{project}/_apis/pipelines/{definition id}/runs?api-version=5.1-preview.1
身体:
{
"resources": {
"repositories": {
"self": {
"refName": "refs/heads/master"
}
}
},
"templateParameters": {
"tag": "new"
}
}
只需在请求正文中配置要传递给的变量即可。
已添加:
"variables": {
"myVariable": {
"value": "0325ApiQueue"
}