Azure DevOpsで成果物であるコンテナをACRにPushし、Webapp for Containerへデプロイするパイプラインを作成しました。
その際、ACRのコンテナタグを一意にするため、コミットハッシュを使いたかたったのですが、情報があまりなかったので手順を残しておきます。
ベースとなるDevOpsの設定や、WebAppについてはこちらの記事を参照
yamlを修正
tagを$(Build.SourceVersion)
に変更
$(Build.SourceVersion)
はPipelineがトリガーされたgit commitのハッシュを参照する変数です
Releasesを修正
Pipelineを変更しただけではACRにPushするところまでですので、実際にどのtagをデプロイするか管理しているReleasesも修正する必要があります
Releasesでも同じく$(Build.SourceVersion)
が利用できます
Azure App Service deployのTask内でtagを指定している箇所があるので、ここを$(Build.SourceVersion)
に置き換えます
動作確認
ACRにコミットハッシュでイメージがPushされており、WebAppが更新されていればOKです
雑感
$(Build.SourceVersion)
で参照できるハッシュが長いのでShort Hash(8桁)で利用できる方法があればなお良し