私たちのプロジェクトは、マルチモジュールプロジェクトです。このプロジェクトは別のマルチモジュールプロジェクトに依存しています。 POMSの関係(集約と継承賢明両方が)gerritを使用した長いrebase
parent-super-pom
|---parent-module-1
|---parent-module-2
|---parent-module-3
|---...
|---parent-module-n
|---child-super-pom
|---child-module-1
|---child-module-2
|---child-module-3
|---child-module-4
よう
parent
プロジェクト内のすべては別々のチームによって管理され、
framework
それを呼び出すことができます。
child
のプロジェクトのすべては、私たちのチームによって管理され、
product
に電話していただけます。
ここでframework
は、spring-boot
を使用するようにアップグレードされており、他にも多くの変更点があります。 framework
の最新の技術を使用するには、product
をアップグレードする開発を開始する必要があります。このアップグレードプロセスは、アプリケーションを動作させるために必要な変更がたくさんあるため、(コンパイル不可能なコミットが多数の)約1ヶ月かかるでしょう。一方で、product
も古いMaven環境で独自の機能を開発しています。この状況に近づく最善の方法は何でしょうか?
私たちはジェリーコードレビューを使用しています。変更は最初にgerritにプッシュされ、基本テストを実行するための自動ジンキンジョブトリガーがあります。変更はビルドが合格した場合にのみ提出することができます。また、など
私の考え
012を再現 ない 実際の力プッシュに直接プッシュしていることを私が意味する、以下のコンテキスト力プッシュ中では、ウェブテスト、統合テスト時間のかかるを実行したいとヘリットコメントを通していくつかのトリガーに基づいて要求することができござい構築していますそれは バイパスヘリット、すなわちへの分岐やGitの歴史に
feature/upgrade
- は必ず一時的なCIの仕事は、この分岐w.r.t.のためのセットアップであることを確認してくださいと言う、アップグレードのために
product
に機能ブランチを作成します。アプリケーションが正常 - 実行できるようになるまで、オンデマンドのものアップグレードに必要なこのブランチへ
- プッシュ変更を含む新しい環境では、アップグレードの終了時に大量の競合を避けるために随時
master
のブランチをリベース(必要になりますfeature/upgrade
上の力プッシュ)終わり - は、新しく作成された一時的な雇用 のと同様の設定を使用して起動する
master
に力押しを必要)となりましマスターにCIジョブを構成します(
feature/upgrade
から
master
に対するすべての変更をプッシュ
このIDの瑕疵eaは強制押しです。私たちは支店がミスに脆弱になり、組織内の少数の人しかそのような提出をすることができないように、支店がそのようなプッシュに対してロックされていることを保証します。私がここで活用したり、私のアイデアが完全に間違っているかもしれないいくつかのgerrit機能を知らないかもしれません。私はそのような状況に対処する最良のアプローチが何であるかを知る必要があります。
私はこれが起こりたくありません。コミットを検証したい私が最後に避けたいのは、ゲリットをバイパスしてリベースすることです。 – Mukund