Как добавить пользовательские теги сборки для docker изображений в файл azure -pipelines.yml? - PullRequest
0 голосов
/ 24 марта 2020

Мы используем Azure DevOps для нашего проекта. У меня есть azure-pipelines.yml файл, который использует идентификатор сборки для тега docker image. Но мы собираемся вручную добавить идентификатор изображения docker как часть определения сборки.

Можно ли передать аргументы времени выполнения из 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 Ответ

1 голос
/ 25 марта 2020

Можно ли передать аргументы времени выполнения из api очереди сборки в файл azure -pipelines.yml?

Не уверен, что именно означает аргумент времени выполнения. Но я думаю, что вы ищете, это сборка очереди с оставшимся API вместе с передачей динамической переменной c в конвейер одновременно.

Пример сценария:

Здесь мой 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 }}'

Как видите, необходимый ему тег изображения Dynami c является параметром 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"
    }
...