のこの機能とバージョン8のために必要であれば、私はGitLab 6.3とチームシティー8を持っていると私はあまりにも機能ブランチを構築する必要があるアップグレードすることができます。私たちは以下のワークフローを持っています(git-flowに基づいていますが、リリースサイクルに応じて若干変更されています)。
したがって、私たちはdevelopment
ブランチを持ち、1つは特定の名前dev/feature-name-here
を持つフィーチャーブランチをプッシュします。
次に、dev/feature-name-here
からdevelopment
までのGitLabでのマージリクエストの作成。
TeamCityは、ブランチのビルドが自動的に開始されるように、次のrefspec:+:refs/heads/dev/(*)
で各ブランチのビルドを自動的に実行するように設定されています。
次に、私はGitLabのマージリクエストページに埋め込まれたカスタムスクリプトを持っています。それは以下を行います。
- ソースを検出し、チームシティーREST APIを使用するとMRページ
- を見て、枝をターゲットとすることである構築列挙対象ブランチに属している(チームシティー8に、私たちは私たちが使用して構築するために、構成IDをカスタムビルド割り当てることができます
devUnit
、devIntegration
、devWhatever
など)
- 関連するビルド構成ごとにソースブランチとターゲットブランチのビルドステータスイメージが含まれています。
今では次のようになります。
![TC Build status at GitLab](https://i.stack.imgur.com/i5MGL.png)
今、このアプローチは、1が他のプッシュでブランチを更新した場合、私はGitLabページから把握することはできませんのようないくつかの欠点を持つ新しいコミットがすでにあるさビルドされているか、私はビルドステータスを確認しているので、ビルドリンクをクリックしてTeamCityをチェックする必要があります
これは本当に便利だと思います。 Jenkinsにはマージリクエストビルダーがありますが、TeamCity(https://github.com/jenkinsci/gitlab-merge-request-builder-plugin)に相当するものは見つかりません。このプラグインのソースを見ると、+ refs/pull/*/mergeのようなものを見るよりもはるかに複雑であることが示唆されました。 –