2

私は現在、テスト自動化システムに取り組んでおり、Jenkins (Hudson) Buildserver を持っています。ここでインストーラーをビルドし、*.exe として実行可能なインストーラーを取得します。

この *.exe は、接続されているすべてのコンピューターからアクセスできるネットワーク共有に自動的に配置できます。

インストーラーをビルドした後、次のことを行いたいと思います。ネットワーク内で選択してプログラムを実行できるコンピューターに展開したいと思います。

Jenkins 内に最適に統合できるソリューションを探していますが、とにかく、Jenkins サーバーで任意のプログラムをバッチから実行できます。

では、どの部分が必要で、どのように実装することをお勧めしますか? もちろん、ソリューションが将来的に拡張可能である必要があり、Jenkins と他の PC 間の通信がさらに必要になる可能性があります。

主な質問は次のとおりだと思います。

リモートを最適にインストールするにはどうすればよいですか? ここである種のクライアント サーバー アーキテクチャを使用する必要がありますか、それとも最善の方法は何ですか?

ご協力いただきありがとうございます!

4

1 に答える 1

1

これを行う1つの方法は次のとおりです。スレーブとして実行されているインストーラーを実行したいさまざまなマシンでJenkinsを分散的に実行します。次に、 BUILDITRUNITの 2 つのジョブを記述します。1 つ目はプロジェクトをビルドし (1 台のマシンのみ、またはさまざまなスレーブに関連付けられている可能性があります)、2 つ目はインストーラーを実行してインストールをテストします (このジョブは、テストするスレーブで実行されます)。

ここで、上流と下流のどちらのジョブを作成するかについて 2 つの可能性があります。

(1) BUILDITはアップストリームです。ビルドの最後に、Parameterized Trigger Pluginを介してRUNITを呼び出し、インストーラーの場所を渡します。ArtifactDeployer プラグインを介して、 BULDITの BUILD_ID をキーとするディレクトリ内の共有ドライブにインストーラーを配置することもできます(これはおそらく実装が最も簡単なオプションですが、汎用的ではありません)。またはRUNITは、wget または curl を使用してパーマリンクを介してインストーラー アーティファクトにアクセスできます (このような場合、 BUILDITはリンクを作成してRUNITに渡します)。他のオプション ( Jenkins Python Remote Access APIの採用など) もありますが、実装はより困難です。

現在、RUNITは、すべてのスレーブでインストール/テストをトリガーするマルチ構成ジョブのいずれかです。または、別の方法として、実行するスレーブを指定するBUILDITからパラメーターを渡すこともできます。次に、NodeLabel Parameter プラグインを使用して、 RUNITをパラメーターで指定されたスレーブに結び付けることができます。

(2) RUNITはアップストリームです。テストを実行するスレーブを何らかの方法で決定し、そのスレーブでRUNITを呼び出します(実行するスレーブをパラメーター化する方法については上記を参照してください)。次に、 RUNITは、パラメーター化されたトリガー プラグインを介して、ビルド ステップとして (ビルド後のステップとしてではなく) BUILDITを呼び出します。RUNITBUILDITにその BUILD_ID をパラメーターとして渡す必要があります。これにより、BUILDITはそれによってキー付けされたインストーラー アーティファクトを格納できます。RUNITは BUILDIT が完了するのを待ち、BUILD_IDを使用してインストーラーを見つけ、インストールとテストを続行します。

于 2012-07-12T17:34:53.217 に答える