4

個々のユーザーがレポ パスを hudson サーバーに送信し、サーバーにそのレポのビルドを開始させる方法が必要です。動的に作成されたジョブ構成の痕跡を残したくありません。同じジョブの複数のインスタンスを同時に開始したいと考えています。明らかに、これには、インスタンスごとに異なるワークスペースが必要です。これは、現在の拡張機能を使用しても不可能だと思います。私は自分が達成しようとしていることに対して、さまざまなアプローチを受け入れます。

ハドソンサーバーが外部ソースからのビルドのリクエストを受信し、無料のエグゼキューターがある限りそれらを開始できるようにしたいだけです。リポジトリの場所を除くすべてのビルドでビルド構成を同じにしたい。自動的に生成された名前で何十もの同一のジョブを配置したくありません。

このような目的で Hudson や Jenkins を使用している人はいますか? どのように設定しますか?十分なスクリプティングがあれば、スクリプトから CLI API を介して必要なジョブ構成を動的に作成し、完了したらそれを破棄できると思います。しかし、アーティファクトを保持したいので、実行が完了したときにジョブを破棄することは問題です。私は本当に自分の拡張機能を書いて維持したくありません。

4

1 に答える 1

5

これは、使用する SCM の種類にもよりますが、プラグインを必要とせずに Jenkins で行うのは非常に簡単です。いずれにせよ、Hudson からアップグレードする
価値はあります。Jenkins になってからの多くのリリースで、ユース ケースをサポートするために必要な機能が確実に改善されてきました。

リポジトリ パスをパラメーターとしてビルドに渡したいので、ビルド構成で [このビルドはパラメーター化されています] オプションを選択する必要があります。REPO_PATHそこで、または同様の文字列パラメーターを追加できます。

次に、コードのチェックアウト元を指定する場所で、パスを に置き換えます${REPO_PATH}
スクリプトからコードをチェックアウトしている場合、またはリポジトリ パスへのアクセスが必要な場合、変数は自動的に環境に追加されるため${REPO_PATH}、シェル スクリプトまたは Ant ファイルから参照できます。

この時点で、 を押すBuild Nowと、ビルドが開始される前にリポジトリ パスを入力するよう求められます。上記の wiki ページで述べたように、buildWithParametersURL を呼び出して、目的のパラメーターを使用して直接ビルドを開始できます。http://server/job/myjob/buildWithParameters?REPO_PATH=foo

最後に、ビルドを同時に実行したい場合、Jenkins は同時ビルド用の一時的なワークスペースを作成することでこれを管理できます。ジョブ構成で「必要に応じて並行ビルドを実行する」オプションを有効にするだけです。

アーティファクトは、他の Jenkins ビルドと同じように利用できます。おそらく、保持されている最近のアーティファクトの数を管理したいでしょう。これは、[古いビルドを破棄する] をオンにすることで実行できます。次にAdvanced…、[アーティファクトを保持するビルドの最大数] の値を入力することを選択できます。

于 2012-07-07T12:41:59.817 に答える