11

外部サブモジュールを含む git リポジトリがあります。サブモジュールが変更されたときにビルドをトリガーする必要があります。xtrigger プラグインを使用してサブモジュールの変更をポーリングする方法を教えてください。シェルスクリプトを使用するか、ファイルを監視するか、または何か他のものを使用する方が良いですか?


ビルド ブロセスの詳細については、こちらをご覧ください。ステップ1。ステップ 2 のサブモジュールを使用してルート リポジトリを複製します。サブモジュールのステップ #2.1 (サブモジュール内) ごとにジョブを実行します。適切なブランチ (マスターなど) のステップ #2.1 (サブモジュール内) に切り替えます。サブモジュールの最新のソースをプルします

誰かがルート リポジトリにコミットすると、jenkins はアプリのビルドを起動しますが、誰かがサブモジュール リポジトリにコミットすると、jenkins は何も起動しません。

2 番目のケースの解決策が必要です。最良の場合、標準のジェンキンス機能またはオープン ソース プラグインを介して実行する必要があります。

4

1 に答える 1

7

git リポジトリにサブモジュールがある場合、そのサブモジュール内の特定のコミット ( commit など) を指しAます。したがって、サブモジュールが変更され、最上位リポジトリBの子としてコミットされたとしても、まだ commit を指しています。サブモジュールのコミットを指すように最上位リポジトリを明示的に更新する必要があります。これは自動的には行われません。AAB

これを考えると、あなたの質問への答えは、トップレベルのリポジトリを更新して、新しい commit を指すようにすることBです。これにより、リポジトリが変更され、通常と同じように Jenkins ビルドがトリガーさBれ、サブモジュールから新しいコミットが取得されます。

--

追加情報があれば、サブモジュール リポジトリを監視する Jenkins ジョブを追加します。サブモジュールが変更されると、サブモジュール固有のテストが実行され、ビルド後のステップとしてメイン リポジトリ ジョブがトリガーされます。

于 2012-12-05T13:28:00.273 に答える