質問: 次のコンテキストのために YAML パイプラインで CI/CD をどのようにセットアップしますか。
枝
- 主人
- release/{英字名} ex. release/Albert 次のリリースは release/Bertrand などです。
環境
- accept: マスターにプッシュされたものすべて
- テスト: 最新リリース ex. リリース/ベルトラン
- サンドボックス: 最新リリース -1 (ここでホットフィックスをテストできます) ex. リリース/アルバート
- ライブ: 最新リリース -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 パイプラインを実行できるはずです。そのブランチの最新ビルドからアーティファクトをダウンロードする必要があります。そうではありません。
目的の不足