3

Git の場合と同じように、Jenkins に SVN プロジェクトのすべてのブランチの変更を検索させる方法はありますか?

Apache Pig Piggybank は、コミュニティによって提供された一連のクラスであり、特定のバージョンの Apache Pig に拡張機能を追加します。Pig 自体は Maven 経由でリリースされるため、特定のバージョンを取得することは問題になりません。一方、Piggybank はバージョン管理されていませんが、依存する Pig のバージョンごとにブランチがあります。

Pig SVN リポジトリ内のすべてのブランチについて、Jenkins に監視してからビルドしてもらいたいです。Piggybank の新しいバージョンに目を光らせたり、ブランチごとに Jenkins ジョブを追加したりする必要はありません。

4

2 に答える 2

2

@Larsの回答に沿った詳細を次に示します。

ワークスペース内の別のディレクトリにすべてのブランチをチェックアウトするトリガー ジョブ ( Triggerと呼びましょう) を作成します (ちなみに、オプションを使用してワークスペース内にこれらのディレクトリを手動で作成すると--depth=empty、Subversion プラグインは引き続き変更を検出しますが、検出しません。コードをチェックアウトすると、多くのブランチがある場合にスペースを節約できます)。

その後、どのブランチ (または複数のブランチ) が実際に変更されたかを確認するビルド ステップとしてトリガーが呼び出すスクリプトでSNV_REVISION_n( n1、2 など。Subversion プラグインのドキュメントを参照) を使用できます (もちろん、結果を保存する必要があります)。 、次のトリガービルドで使用されます)。

次に、ブランチ名をパラメーターとして受け取るジョブ ( Workerと呼びましょう) を 1 つだけ作成します。トリガーは、適切なパラメーター (ブランチ名など) を指定して wget または curl を使用して http 経由でワーカーを呼び出します。

または、ブランチごとにトリガージョブを作成し、パラメーター化されたトリガー プラグインを使用してワーカーを呼び出すこともできます。欠点は、ブランチごとにトリガーを作成する必要があり、SVN ポーリングが増えることです ( SVN pushを使用しない場合)。一方、 変更されたブランチをチェックするスクリプトを作成する必要はなく、 Blame Subversion Pluginを使用して変更セットをトリガーからワーカーに伝達できます(そのブランチに関連する変更のみ)。

ワーカーは、パラメーターとして渡されたブランチを手動で更新/チェックアウトし (svn coなど)、ビルドします。

このようにして、実際の重い作業を行うジョブが 1 つだけになります (つまり、メンテナンスが容易になり、バグが少なくなるなど)。

私はビルドシステムでこの方法を採用しています。一度に 2 つ以上のアクティブなブランチがないため、ブランチごとのトリガー アプローチを使用します。

于 2012-04-16T10:21:07.007 に答える
1

複数のリポジトリの場所を 1 つのプロジェクトに追加し、それらを別のディレクトリにチェックアウトすることができます。ただし、すべてのブランチを手動で追加する必要があります。

于 2012-04-16T09:33:31.203 に答える