私は GitFlow 分岐戦略を使用しています。プロジェクトごとに 3 つのビルド構成が必要です。
- 統合 - ブランチ仕様を使用して、develop、feature/*、および hotfix/* からビルドします
- +:refs/heads/(開発)
- +:refs/heads/feature/(*)
- +:refs/heads/develop/(*)
- +:res/heads/(hotfix/*)
Beta - ブランチ仕様で beta/* からビルド
- +:refs/heads/(リリース/*)
リリース - ブランチ仕様でマスターからビルド
- +:refs/heads/(マスター)
好みのブランチ名を設定するために括弧を使用していることに注意してください。これら 3 つのビルドがある理由は、ビルド構成名をビルド名の一部として使用するためです。たとえば、1.2.3-Integration.27 の形式でビルドを取得します。最後の番号「27」はプロジェクト全体です。共有ビルドカウンター。また、さまざまな構成でさまざまなビルド後のアクションを実行します。たとえば、リリース構成では展開アクションが実行されます。
私が「非決定論」と呼んでいるものの例として、プル リクエストを介して機能ブランチを開発にマージしました。開発ブランチをビルドする統合ビルド構成でビルドを取得します。しかし、ブランチの仕様に何も変更がないにもかかわらず、他の 2 つのビルド構成でもビルドを取得します。たとえば、私のリリース構成は物事を展開するため、これは間違いなく私が望むものではありません。問題のあるビルドが強調表示されたスクリーン ショットを次に示します。
更新 - 追加情報 「問題のあるビルド」の概要は次のとおりです 。トリガー構成は 次のとおりです。
TeamCity が Git とどのように連携するかについて、私は明らかに理解していません。ビルド構成は、ブランチ仕様に該当するもののみをビルドすることになっているという印象を受けています。残りの2人はどこから来たのですか?ブランチ仕様に開発 (または refs/heads/develop) が含まれていない場合、これらのビルドがトリガーされるのはなぜですか? これが起こらないようにする方法はありますか?
JetBrains サポート フォーラムでこれを提起しようとしましたが、そこには何の牽引力もないようです。そのため、StackOverflow コミュニティに手を差し伸べようと思いました。