如何在azure-pipelines.yml文件中为Docker映像添加自定义构建标签?

时间:2020-03-24 09:58:40

标签: azure-devops azure-devops-rest-api

我们正在为项目使用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"
 }

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"
  }
}

只需在请求正文中配置要传递给的变量即可。

enter image description here


已添加:

  "variables": {
    "myVariable": {
      "value": "0325ApiQueue"
    }