3

私の問題は、ノードの再起動が必要なコードがあることです。再起動したノードで実行する必要がある、実行時間の長い Jenkins テスト ジョブが多数あります。

私の既存の解決策は、Jenkins で複数の「プロキシ」マシンを定義し、同じラベル (TestLable) とマシンごとに 1 つのエグゼキューターを定義することです。すべてのテスト ジョブをラベル (TestLable) にバインドします。テスト実行スクリプトでは、Jenkins マシン (Jenkins env. NODE_NAME) を検出し、それを使用して、テストで使用する必要がある物理物理マシンを認識します。

より良い解決策を知っている人はいますか?

上記は機能しますが、必要ないかもしれない多数の「ノード/マシン」を定義する必要があります。私が欲しいのは、Jenkins ジョブにトークンを付与できるプラグインでした。この方法では、Jenkins executor とトークンが解放される前にジョブが実行されることはありません。トークンは、テスト ジョブがそれを使用して使用できる外部ノードを認識できるように、文字列にする必要があります。

4

1 に答える 1

0

Jenkins ノードを開始する前に、ものを割り当てる独自のスケジューラーを作成しました。より良い解決策があるかもしれませんが、これはほとんどの場合うまくいきます。さまざまなハードウェア リソースの複雑な割り当てを処理できる既製のスケジューラをまだ見つけていません。n 個のビルド タイプに割り当てられた n 個のボックス タイプがあります。

一部のビルド タイプは、すべての永続データを破棄しないと互換性がありません。これは、収集に時間がかかるため必要になる場合があります。一部のジョブでは、これらのハードウェア タイプの組み合わせが必要です。詳細を DB に保存し、ビジネス ロジックを使用してその割り当て方法を決定します。特定のジョブ タイプでは、特定の要件に対応するために追加のビジネス ロジックや追加のデータ フィールドが必要になることがよくあります。

したがって、特定のニーズを考慮して、独自の言語で独自のスケジューラを作成するのが最善の方法かもしれません。

于 2014-11-28T10:31:00.980 に答える