0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Azure DevOps】コミットされたブランチごとにデプロイ先の環境を切り替える

Posted at

アプリケーション開発では開発環境、ステージング環境、本番環境など複数の環境を用意します。
Azure DevOpsでCI/CDを行う場合もデプロイ先を切り分けたいので簡単な方法を検討してみます。

ベースとなる環境(今回は本番環境と仮定)の作成は以下記事を参照してください。
今回は本番に加えてステージング環境を作って、Reposのstagingブランチにコミットがあった際にステージング環境にデプロイされるようにします。

WebApp for Containerを作成する(ステージング用)

本番と同じなので割愛します。

Reposでブランチを作成

image.png

Releasesを作成

新しくReleasesを作成し、トリガーのBuild Branch filtersに作成したstagingブランチを設定
image.png

Stageは本番ではないのでWebAppのデプロイスロットは使わず直接運用スロットへデプロイし、再起動をしています
デプロイ先はもちろん新規で作成したWebAppを指定します
image.png

ACRは本番環境と共有(実際には分けたほうが良いかもしれない)するので、タグとして分かりやすいように$(Build.SourceBranchName)でブランチ名を付与しています
タグを一意にする方法については以下記事参照

stagingブランチでyamlファイルを修正

トリガーにstagingを追加

trigger:
  - master
  - staging

コンテナタグにブランチ名を付与

  - task: Docker@2
    displayName: Build and push an image to container registry
    inputs:
      command: buildAndPush
      repository: $(imageRepository)
      dockerfile: $(dockerfilePath)
      containerRegistry: $(dockerRegistryServiceConnection)
      tags: |
        $(tag)-$(Build.SourceBranchName)

変更をコミットし、新しいReleasesがトリガーされ、WebAppが更新されればOK
stagingで問題なければmainにプルリクエストを出し、マージすれば本番のPipelineがトリガーされる

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?