Рубрики
Uncategorized

Azure DevOps YAML Выпуск трубопровода: триггер при сборке трубопровода завершенный

Наконец, CD на основе Azure DevOps YAML был GA! Объявление общую доступность функций YAML CD … Теги с лазурным, дежоптом, трубопроводом, ямлем.

Наконец, CD на основе Azure DevOps YAML был GA! Объявление общую доступность функций CD YAML в лазурных трубопроводах

Самый первый вопрос, который я имел в виду, было «Как вызвать выпуск трубопровода после сборки трубопровода?»

Если я автор Ci/CD в том же YAML, даже с помощью многоступенчатого, мне не нужно думать о «срабатывающем компакт-диске», но что, если я автор CI и CD в отдельном YML и создать два трубопровода?

Ресурсы — отличный способ запускать трубопровод по таким типам, как трубопроводы, сборки, репозитории, контейнеры и пакеты. В этой статье я фокусирую на трубопровод ресурс.

Без дальнейшего обучения давайте создадим сборки по эксплуатации для теста.

1. Создайте новый проект DEVOPS и новый репозиторий. Я просто добавляю текстовый файл там.

2. Добавьте Build-Pain Exeline.yml Файл и обновите YAML, как показано ниже. Как видите, каждый шаги просто манекены. Этот трубопровод генерирует один артефакт.

trigger:
  branches:
    include:
    - master
  paths:
    exclude:
    - build-pipeline.yml
    - release-pipeline.yml

variables:
  vmImageName: 'ubuntu-latest'

jobs:  
- job: Build
  pool:
    vmImage: $(vmImageName)
  steps:
  - script: | 
      echo 'do some unit test'
    displayName: 'unit test'
  - script: | 
      echo 'compile application'
    displayName: 'compile'
  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true
  - upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
    artifact: drop

3.Креата Новый трубопровод, указав выходу YAML и выберите «Build-Pipeline.yaml»

4. Запустить и посмотреть результат.

5. Он генерирует один артефакт.

6. Переименуйте трубопровод, чтобы это было легко увидеть, это построить трубопровод.

Далее создайте выпускной трубопровод, который будет вызван после сборки конвейера.

1. Добавьте релиз-трубопровод .Мим файл и обновите YAML.

# Explicitly set none for repositry trigger
trigger:
- none

resources:
  pipelines:
  - pipeline: myappbuild  # Name of the pipeline resource
    source: myapp-build-pipeline # Name of the triggering pipeline
    trigger: 
      branches:
      - master

variables:
  vmImageName: 'ubuntu-latest'

jobs:
- deployment: Deploy
  displayName: Deploy
  environment: dev
  pool: 
    vmImage: $(vmImageName)
  strategy:
    runOnce:
      deploy:
        steps:          
        - download: myappbuild
          artifact: drop  
        - task: ExtractFiles@1
          inputs:
            archiveFilePatterns: '$(PIPELINE.WORKSPACE)/myappbuild/drop/$(resources.pipeline.myappbuild.runID).zip'
            destinationFolder: '$(agent.builddirectory)'
            cleanDestinationFolder: false
        - script: |  
            cat $(agent.builddirectory)/greatcode.txt

2. Создайте новый конвейер и выберите «Создать файл».

3. Сохранить трубопровод.

4. Нажмите Выполнить трубопровод и выберите «Ресурсы».

5. Выберите ресурс из сборки трубопровода.

6. Затем запустите трубопровод и посмотрите результат.

7. Переименуйте трубопровод, если хотите.

Теперь пришло время сделать тест CI/CD. Просто обновите CONTELTCODE.TEXT CONTELT и зафиксируйте мастеру.

Вы видите, что конвейер построится сначала, затем выпустите трубопроводные прогоны.

Здесь есть несколько вещей, чтобы отметить здесь.

Выпуск триггера

Я явно нажимаю на триггер, чтобы выбросить трубопровод не сработал в любых изменениях в ветвях.

# Explicitly set none for repositry trigger
trigger:
- none

Тогда я указываю ресурсы | трубопроводы. трубопровод Имя — это просто имя, которое я могу ссылаться позже. Источник где я указываю назовите построить имя трубопровода.

resources:
  pipelines:
  - pipeline: myappbuild  # Name of the pipeline resource
    source: myapp-build-pipeline # Name of the triggering pipeline
    trigger: 
      branches:
      - master

Затем я ссылаюсь на это во многих местах. Я использую Загрузить задачу для явного скачивания Drop Artifact. Это полезно при строительстве трубопровода публикует несколько артефактов, но освобождение трубопровода не нуждается в них всех.

- download: myappbuild
  artifact: drop 

Скачанный артефакт может быть доступен с заранее определенной переменной.

$(PIPELINE.WORKSPACE)/myappbuild/drop

Я также другую предварительно определенную переменную для определения имени файла ZIP.

$(resources.pipeline.myappbuild.runID).zip

Я могу просто указать * .zip, но это полезно, когда мне нужна сборка. CytreatiD в выпуске трубопровода.

Есть несколько вещей, которые мне нужно знать заранее к автору трубопроводы, но как только я это знаю, это легко. Надеюсь, эта информация поможет вам.

Оригинал: «https://dev.to/kenakamu/azure-devops-yaml-release-pipeline-trigger-when-build-pipeline-completed-54d5»