web-dev-qa-db-ja.com

VSTSリリースプルリクエストビルドトリガー

私のチームは、プルリクエストブランチの安全設定と組み合わせたVSTSビルドおよびリリースメカニズムを使用しているため、プルリクエストが完了したときにのみコードをマージできます。

ただし、プルリクエストが作成されたとき(およびコミットを証明するためにビルドが生成されたとき)、プルトリガーによってトリガーされたこのビルドが完了すると、間接的にリリースがトリガーされます。これは、リリーストリガーの設定があるためです。 。

これ自体はおそらく問題ありませんが、プルリクエストが「完了する」と、別のビルドとリリースのサイクルが実行されます。

プルリクエストが完了し、リリースブランチにマージされたときにのみVSTSリリーストリガーを起動する方法はありますか?

ありがとうございました!

12
watdo

マスターのビルドのみがリリースをトリガーするように、リリーストリガーにブランチフィルターを指定できます。 PR検証ビルドは別のブランチで行われます。承認され、ブランチがマスターにマージされると、リリースをトリガーするビルドになります。

不愉快なことに、彼らは物事を動かし続けます。この記事の執筆時点では、リリースを編集すると、パイプラインの下、アーティファクトの下、アーティファクトに稲妻が入った円があり、ツールチップに「継続的デプロイメントトリガー」と表示されています。それをクリックします。右側にトリガーが有効になっている場合は、「ブランチフィルターの作成」が表示されます。 [+追加]をクリックして、マスターブランチを選択します。リリース定義を保存します。

さまざまな処理を行うビルドについては、タスクに条件を設定して、PR検証ビルドでのみ、またはマスタービルドでのみタスクを実行できるようになりました。

https://docs.Microsoft.com/en-us/vsts/build-release/concepts/process/conditions

16
Jeff Shepler

現在のビルド定義を複製してCIビルドを無効にしてから、複製されたビルドを使用して、作成されたPRを確認するだけです。

まず、以下のように設定を変更します。

1。クローンビルド

CIビルドの...ボタンをクリックします->クローン->クローンされたビルド定義を編集します-> CIビルドを無効にします->保存します。

enter image description here

2。ブランチポリシーのクローンビルドを置き換えます。

ブランチポリシーを開く->ビルド検証ポリシーを編集->代わりに複製されたビルド定義を選択->保存。

enter image description here

したがって、workflowは次のようになります。

  1. 複製されたビルドは、プルリクエストが作成または変更されたときにトリガーされます。
  2. 複製されたビルドがキューに入れられたら、PRを完了することができます。
  3. PRが完了すると(変更がマージされます)、CIビルドがトリガーされます。
  4. CIビルドが成功すると、CDリリースがトリガーされます。

これで、PRのみが完了してreleaseブランチにマージされ、リリース定義がトリガーされます。

9
Marina Liu

ビルドタスクの条件ステートメントを使用して、Build.Reasonが「プルリクエスト」であるかどうかを検証します。

タスクに移動>「制御オプション」>「このタスクを実行」を展開>この下で「カスタム条件」を選択

カスタム条件で以下の条件を指定して、PullRequestビルドをフィルターで除外しますand(succeeded()、ne(variables ['Build.Reason']、 'PullRequest'))

0
Anil