GitLab 7.6またはその周辺以降、GitLabプロジェクトから直接TeamCityを使用する新しいオプションがあります。セットアップには次のメッセージがあります。
Teamcityのビルド構成では、ビルド形式番号%build.vcs.number%を使用する必要があります。また、すべてのブランチの監視を構成して、マージ要求がビルドされるようにします。この設定は、vscルートの詳細設定にあります。
これがどのように機能するかわかりません。リポジトリFooがあるとしましょう。
TeamCityでビルドをセットアップして、ブランチ仕様でFooをリッスンしました:+:refs/pull/*/merge
次に、gitlabでFooをFooForkとしてフォークし、変更を加えてから、FooFork-> Fooのマージをリクエストします。
しかし、このマージをテストすることは何も起こりません。これは、GitLabに期待していたことです。マージを受け入れると、ビルドサーバーが(すぐに)アクションを開始し、2回ビルドします(master
と/ref/master
)。
また、ビルド構成を正確に使用するように設定しました:%build.vcs.number%をビルド番号として規定どおりに使用しましたが、gitlabはビルド結果に関する情報を提供していないようです。
ですから、このGitLab-> TeamCity統合が正確に何をするのか、そして私が間違っているのかどうかについて、私は少し混乱しています。
現在、GitLab7.9とTeamCity8.1.4を実行しています
更新:
このユースケースはバージョン8より前ではサポートされていなかったようです--- https://github.com/gitlabhq/gitlabhq/issues/724
GitLab8.0.2とTeamCity9.1.1を実行しており、ブランチとマージリクエストでCIビルドを実行できます。
特定のブランチのCIビルドをトリガーするには、VCSトリガーを ブランチ仕様+:refs/heads/(xyz*)
と一緒に設定します。ここで、xyzはチケットシステムプレフィックスの文字列です。これは、アクティブなブランチすべてに名前を付ける必要があるためです。課題トラッカーのエントリ。
ブランチ仕様+:refs/(merge-requests/*)
を介してマージリクエストのビルドをトリガーします
すべてが期待どおりに機能し、すべての機能/バグブランチのステータスとマージリクエストを自動的に通知します。
マージリクエスト仕様のGitLab8リリースノートエントリにリンクしているRobのコメントに感謝します。
ここでも同じ問題があります。別の方法があるかもしれません、私は今評価しています。ターゲットMRからマージされた状態を取得する直接的な方法はないため、自分でビルドする必要があります。
IMOには次のやることがあります
1。)ベアリポジトリを初期化する$ git init
2。)ターゲットリポジトリを追加します$ git remote add Origin git@your-repo:<Origin.group>/<Origin.repo>.git
3。)リモート/機能/マージの$ git remote add target git@your-repo:<feature.group>/<feature.repo>.git
を追加します
4。)機能ブランチをチェックアウトする$ git checkout -b <feature.branch> feature/<feature.branch>
5。)元のブランチをチェックアウトする$ git checkout -b <Origin.branch> Origin/<Origin.branch>
6。)機能を元のブランチにリベースします$ git rebase <feature.branch>
ここで述べたように [1] 、GitLab-CEはマージリクエストの作成時にイベントを発生させることができます。
したがって、あなたがしなければならないのは、WebHooksを評価できるいくつかのmetaを構築することです。
[1] http://doc.gitlab.com/ce/web_hooks/web_hooks.html#merge-request-events