Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

Azure Pipelinesでデプロイする環境ごとに変数の値を変える

はじめに

Azure Pipelines を使用する際、デプロイする環境によって変数の値を変えたい場合があります。

例) 開発環境では変数に develop という値を使用したいが、本番環境は production という値に書き換えたい。

内容

環境によって変数の値を変えたい場合、if-elseif-else で制御することが可能です。
弊社で使用しているyamlファイルの中身を一部紹介します。

# 変数の定義
variables:
  productionBranch: 'refs/heads/master'
  ${{ if eq(variables['Build.SourceBranch'], variables.productionBranch) }}:
    appName: 'productionApp'
    tag: 'production'
  ${{ else }}:
    appName: 'developApp'
    tag: 'develop'

上記ではトリガーとなるブランチによって変数の値を制御し、環境ごとに変数の値を変更しています。
これにより、以下のように同じyamlファイルで環境ごとのDeployを実行することができます。

# WebAppsのデプロイ例
- stage: Deploy
  displayName: Deploy WebApps
  jobs:
  - job: Deploy
    displayName: Deploy
    steps:
    - task: AzureWebAppContainer@1
      displayName: 'Azure Web App on Container Deploy'
      inputs:
        azureSubscription: $(azureSubscription)
        slotName: $(slotName)
        appName: $(appName)
        imageName: $(containerRegistry)/$(imageRepository):$(tag)

今回は elseif について触れていませんが、公式の記事に記載されているため以下をご確認ください。
Azure Pipelines 式について

終わりに

今回は、Azure Pipelines における小ネタを紹介しました。
今後ともクラウド技術を中心に発信できればと思います。

少しでもお役に立てれば幸いです。