例えば main ブランチと develop ブランチがあったとします。ブランチ別に CI で実行する内容を変えたい場合、条件分岐して記述すると思います。そうするとパイプライン YAML 内のインデント階層が深くなったり、単純に行数が長くなったり段々と扱いづらくなります。そこで今回は、ブランチ別にパイプライン YAML を外出しにする検証を行ってみました。
検証用パイプライン YAML の準備
Azure Pipelines から呼び出される YAML
azure-pipelines.yml
trigger:
- main
- develop
pool:
vmImage: ubuntu-latest
steps:
- script: |
echo common
displayName: 'common step'
- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
- template: azure-pipelines-main.yml
- ${{ if eq(variables['Build.SourceBranchName'], 'develop') }}:
- template: azure-pipelines-develop.yml
main ブランチ用 YAML
azure-pipelines-main.yml
steps:
- script: |
echo main
displayName: 'main step'
develop ブランチ用 YAML
azure-pipelines-develop.yml
steps:
- script: |
echo develop
displayName: 'develop step'
検証結果
main と develop ブランチのパイプライン実行履歴
common step と main step の実行を確認
common step と develop step の実行を確認
参考