问题:如何在 YAML 管道中为以下上下文设置 CI/CD。
分支机构
- 掌握
- 释放/{ALPHABETICAL NAME} 例如。release/Albert 下一个版本是 release/Bertrand 等等。
环境
- 接受:推送到主服务器上的所有内容
- 测试:最新版本前。释放/伯特兰
- 沙盒:最新版本-1(在这里我们可以测试修补程序)例如。释放/阿尔伯特
- 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:部署 master 分支以接受 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 分支部署到沙箱,并在手动批准后部署到实时 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
此解决方案无法满足我们需求的原因:
- 发布分支的名称不是静态的。
- 我们应该能够运行 release-phase3.yml 管道,而无需在此分支上运行构建。它应该从该分支的最新版本下载工件。事实并非如此。
短的目的