Вопрос: как настроить CI / CD в конвейерах YAML для следующего контекста.
ветви
- master
- release / {ALFHABETICAL NAME} ex. выпуск / Альберт следующий выпуск - выпуск / Бертран и т. д.
окружения
- принять: все, что выдвинуто мастер
- тест: последний выпуск отл. релиз / Bertrand
- песочница: последний выпуск -1 (здесь мы можем тестировать исправления) ex. release / Albert
- live: последний выпуск -1 (с исправлениями)
Ближайшее решение
build: создает артефакты проекта build.yml
trigger:
- master
- release/*
pool:
vmImage: 'ubuntu-latest'
steps:
- powershell: |
New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."
- publish: $(Pipeline.workspace)
artifact: testArtifact
release-phase1: развертывание главной ветви для принятия release-phase1.yml
trigger: none
resources:
pipelines:
- pipeline: pipelineId
source: build
trigger:
branches:
- master
pool:
vmImage: 'ubuntu-latest'
jobs:
- deployment: DeployWeb
environment: 'testenvironment'
strategy:
runOnce:
deploy:
steps:
- script: echo FOO
release-phase2: развертывание выпускной ветви для тестирования release-phase2.yml
trigger: none
resources:
pipelines:
- pipeline: pipelineId
source: build
trigger:
branches:
- release/current
pool:
vmImage: 'ubuntu-latest'
jobs:
- deployment: DeployWeb
environment: 'testenvironment'
strategy:
runOnce:
deploy:
steps:
- script: echo FOO
release-phase3: развертывание ветки release-1 в изолированной программной среде и после утверждения вручную в live release-phase3.yml
trigger: none
resources:
pipelines:
- pipeline: pipelineId
source: build
trigger:
branches:
- release/previous
pool:
vmImage: 'ubuntu-latest'
jobs:
- deployment: DeployWeb
environment: 'testenvironment'
strategy:
runOnce:
deploy:
steps:
- script: echo FOO
Причины, по которым это решение не отвечает нашим потребностям:
- имена веток релиза не являются c.
- у нас должна быть возможность запустить конвейер release-phase3.yml, не выполняя сборку на этих ветвях. Он должен загрузить артефакты из последней сборки этой ветки. Что не так.
КРАТКОЕ НАЗНАЧЕНИЕ