9
2

More than 5 years have passed since last update.

Azure DevOpsでPullRequestが発生したらBuildを行うようにしたい

Posted at

GitHubとかでできたあの感じです。

tl;dr

ドキュメントに書いてあります。

Azure Repos→BranchesからブランチのBuild Policiesを開き、Build Validationを有効にする(設定をする)。

詳しい設定手順はドキュメントに図付きで出ている。
でも英語が読めないのでほとんどわかっていない・・・時間があればちゃんと読みたい。

動作イメージ

Build Validationの設定後、そのブランチに対してPullRequestを作成すると、Buildが行われる。
以下はビルドの履歴。トリガーが「Pull request build for ...」という形になり、PullRequestをトリガにして行われた事がわかる。

実行イメージ
(下から手動実行時、ブランチ更新時、PullRequest実行時)

おまけ:Build時とPullRequest時で異なる環境変数メモ

PullRequest(PR)にビルド結果の情報を連携したいときに、PRの番号が取れないと困るが取れるのか?と疑問に思ったので、ビルドマシン上で環境変数をdumpして差分をみてみた。どちらもHostedなubuntu 16.04。

BUILD_REASONBUILD_SOURCEBRANCH変数が異なり、SYSTEM_PULLREQUEST_で始まる変数が加わっている。

変数名 Build時 PullRequest時
BUILD_REASON IndividualCI PullRequest
BUILD_SOURCEBRANCH refs/heads/master(ビルド時のブランチ) refs/pull/2/merge (PRの番号が2の場合)
SYSTEM_PULLREQUEST_PULLREQUESTID - 2 (PRの番号が2の場合)
SYSTEM_PULLREQUEST_SOURCEBRANCH - refs/heads/feature/update-pipelines(PRのブランチ名)
SYSTEM_PULLREQUEST_SOURCECOMMITID - cc86efe4ab885b7e3973074f4f30c4ec3345fdc5 (PRのコミットID)
SYSTEM_PULLREQUEST_SOURCEREPOSITORYURI - https://ユーザ名@dev.azure.com/組織名/プロジェクト名/_git/Gitリポジトリ名
SYSTEM_PULLREQUEST_TARGETBRANCH - refs/heads/master

変数名がSYSTEM始まりで見落としてた。調べたらこの辺りはドキュメントに書かれていた。ドキュメント嫁。

ここまで来たら、PR番号を使ってコメントを投げる部分もやりたいが、週末頑張る。
なお、PRのアクションに合わせてRelease実行するには、単純にmasterブランチのマージをトリガにすればよさそう。

9
2
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
9
2