Фильтр VSTS Build Artifiacts для выпуска на основе "запускающей" ветки - PullRequest
0 голосов
/ 30 декабря 2018

Контекст:

У меня есть два определения сборки YAML в одном и том же репозитории Git DevOps Git.Файлы YAML находятся в отдельных папках component1 и component2, триггеры сборки фильтруются по пути.Вот файлы YAML:

Первый файл в папке component1:

name: 1.0$(Rev:.rr)
trigger:
    branches:
        include:
        - master
        - release/*
    paths:
        include:
            - component1
resources:
    - repo: self
steps:
- task: CopyFiles@2
  displayName: My Copy Step
  inputs:
    SourceFolder: 'component1'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  displayName: Publish Artifacts

Второй файл в папке component2:

name: 1.0$(Rev:.rr)
trigger:
    branches:
        include:
        - master
        - release/*
    paths:
        include:
            - component2
resources:
    - repo: self
steps:
- task: CopyFiles@2
  displayName: My Copy Step
  inputs:
    SourceFolder: 'component2'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  displayName: Publish Artifacts

У меня также естьОсвободить конвейер, который запускается обоими артефактами, и развернуть последний из этих обоих артефактов.

enter image description here

enter image description here

Моя цель:

Чего я хочу добиться - это когда автоматически создается релиз, я хочу отфильтровать артефакты, чтобы в выпуске использовались последние артефакты, возникшие из ""ветвь".

Так что, если я помещу это в последовательность, это будет выглядеть так:

  1. Я изменю файл в component1 в ветке master.
  2. Определение сборки component1 вступает в силу и создает артефакт на основе ветви master.
  3. Конвейер выпуска запускается из-за создания артефакта на шаге 2 и артефактовдля этого выпуска используются последние версии, созданные в ветви master, для обоих артефактов

Затем я делаю следующую последовательность:

  1. Я изменяю файл в component2 в ветви release.
  2. Сборка component2определение запускает и создает артефакт на основе ветви release.
  3. Конвейер выпуска запускается из-за создания артефакта на шаге 2, и артефакты, использованные для этого выпуска, являются последними версиями, которые были созданыиз ветки release.НЕ последний из предыдущей последовательности, для обоих артефактов.

Проблема / Вопрос:

Кажется, что пока нет выбора для выбора источникаветвится динамически.Я пытался использовать переменную $(Release.Artifacts.{Artifact alias}.SourceBranchName) для поля «Версия по умолчанию», но это не вызвало бы выпуск.

Моя цель выполнима?И если да, то как?

...