12

現在のセットアップは、複数のスレーブ マシンを制御する 1 つのマスターで構成されています。通常、マスターはリストに基づいてテスト スクリプトをスレーブに発行します。どちらのマシンがスクリプトを終了するかアイドル状態になるかは、リストの下に続きます。これらはすべて、同じ単一のビルドに対してテストされます。

私たちは CI 方式に移行しており、現在の計画と同様のことをしたいと考えています。マスターがビルドし、テストのためにスレーブに配布するという方法でも同じように機能すると思います。これはどのように行われますか?

編集:私の立場を明確にするために、私は以前にジェンキンスを使用したことがないため、その知識が不足しています。私を忘却に追いやる前に、誰かが私を正しい方向に向けてくれる必要があるだけです。スプーンの餌の解決策を求めません.

4

2 に答える 2

16

あなたは hyde の回答を受け入れなかったので、より詳細な回答を求めていると思います。まず、Jenkins を初めて使用する場合は、Jenkins: The Definitive Guideを強くお勧めします。Jenkins の使い方は難しくありませんが、使い始めるのは難しい場合があります。その本は、Jenkins のインストールを実行する上でのより複雑な部分の一部を最初から説明する、優れたガイド付きツアーを提供します。それでは、あなたの質問に進みましょう。Jenkins を使用すると、実際に「インストール」しなくても非常に迅速に試すことができるので、ここに従ってください。また、一時的なスレーブを作成するために 2 台目のコンピューターへのアクセスも必要になります (心配する必要はありません。実際にインストールする必要はありません。同僚のコンピューターを使用してください)。

これらの手順は長く見えますが、これはすべての手順を実行しているためです。これにはそれほど時間はかかりません。また、Jenkins のすべてのフィールドの横にある小さな疑問符をクリックしてください。ところで、何かを引用するときは、引用符自体ではなく、引用符の中にあるものを入力してください。

  1. Meet Jenkinsに移動し、Launch ボタンまでスクロールして、何もインストールせずに Jenkins を起動します。
  2. に進みhttp://localhost:8080/ます。見て!ジェンキンスが走っている!
  3. 左側でManage Jenkinsをクリックし、Manage Nodes項目をクリックします。
  4. 左側にある [新しいノード] をクリックします。名前を「Foo」にして、「Dumb Slave」を選択し、[OK] をクリックします。
  5. "# of executors" を 1 に設定します (これは、このスレーブを同時に実行するビルドの数です)。
  6. 「リモート FS ルート」を「c:\jenkins」または「/tmp」に設定します (これにより、スレーブ マシンにいくつかのファイルが作成されるため、書き込み権限のあるディレクトリを使用します)。
  7. 「ラベル」を「テスター」に設定します
  8. 「起動方法」を「Java Web Start を介してスレーブ エージェントを起動する」に設定します (本番環境ではおそらくこれを実行したくないでしょうが、スレーブをすばやく立ち上げることができます)。
  9. [保存] をクリックします
  10. 左上隅のJenkinsをクリックして、メイン ページに戻ります。
  11. 左側の[新しいジョブ]をクリックします。
  12. ジョブに「My build」という名前を付け、「free-style software project」を選択して、[OK] をクリックします。
  13. Restrect where this project can be runをチェックし、ラベルに「master」と入力します (オートコンプリートも必要です)。これにより、ビルドはマスターでのみ実行されます。
  14. 一番下に向かってAdd build step をクリックします。
  15. マスター (現在のマシン) が Windows マシンの場合は、[Windows バッチ コマンドを実行する] を選択します。それ以外の場合は、[シェルを実行する] を選択します。
  16. どちらの方法でも、コマンド タイプは「echo Building」です。これは必須ではありませんが、実行するように指示したことをビルドが実際に実行したことを確認できます。
  17. 画面の下部にある [保存] をクリックします。
  18. 「Project My Build」ページが表示されます。左側のBuild Nowリンクをクリックします。ビルドはほとんど何もしないので、ほぼ瞬時に終了します。ビルドが成功したことを示す青い円のエントリが履歴に表示されます。
  19. Jenkins のメイン画面に戻り、New Jobを追加します。
  20. これに「My test」という名前を付け、別の「フリー スタイル ソフトウェア プロジェクト」にして、[OK] をクリックします。
  21. ここでも、「このプロジェクトを実行できる場所を制限する」をチェックしますが、ラベルを「テスター」にします (これもオートコンプリートのはずです)。
  22. 下にスクロールして、[ビルド ステップの追加] をもう一度クリックします。スレーブコンピュータ (同僚のコンピュータなど) に応じて、"Windows バッチ" または "シェル" を選択します。
  23. 「エコーテスト」と入力します
  24. 下部にある[保存]をクリックします。
  25. さて、楽しい部分です。別のコンピューターに移動します (または、同僚にヘッドライトが点灯していることを伝え、コンピューターを使用します)。Web ブラウザーを開き、http:// your-masters-ip-address :8080/にアクセスします。
  26. Manage Jenkinsをクリックし、次にManage Nodesをクリックします。
  27. Fooをクリックし、[起動]ボタンをクリックします。セキュリティ/「よろしいですか」という警告をクリックして進むと、Jenkins が接続されていることを示す小さなウィンドウが表示されます。これでスレーブが実行されます。
  28. マスター コンピューターに戻り、Jenkins のホーム画面に移動して、ビルドの一覧で[ My test ] をクリックします。
  29. 左側にあるBuild Nowをクリックします。スレーブに接続してジョブをファームアウトする必要があるため、これには少し時間がかかりますが、完了してビルドを履歴に追加する必要があります。
  30. ビルド履歴のエントリをクリックします。次に、左側で [コンソール出力] をクリックします。
  31. ログには、ビルドが Foo でリモートで実行されたことが示され、echo ステートメントが含まれているはずです。ウーフー!リモートビルドが機能するようになりました。
  32. 最後に、ビルドをリンクします。[マイ ビルド] に戻り、左側の[構成] をクリックします。
  33. [ビルド後のアクション] セクションで、[ビルド後のアクションを追加] をクリックし、[他のプロジェクトをビルド] を選択します。フィールドに「My test」と入力します (オートコンプリートする必要があります)。[保存] をクリックします。
  34. Jenkins のメイン画面に移動し、[ My Builds] の右側にある時計/再生アイコンをクリックします。注意深く見ると、左側の「Build Queue」または「Build Executor Status」にジョブが表示される場合があります。
  35. 1 分ほど待ってからページを更新すると、両方のビルドの更新の「最終成功」時刻が表示されます。雲が切れ、天使の歌声が聞こえるはずですが、まだ祝ってはいけません。

これで、マスターが「ビルド」を実行し、スレーブが「テスト」を実行し、ビルドがテストをトリガーします。さらにスレーブを追加することができ、それらに「テスター」というラベルが付いている限り、ビルド サーバーは自動配布します。ビルド後に多くのテストを行い、ビルドでそれらすべてをトリガーすることもできます。簡単なことはこれだけですが、Jenkins を使用してビルドとテストを実行することは非常に簡単です。小さく始めて、上に向かって進んでください。ああ、真剣に、私がリンクしたその本を買いに行ってください (デッド ツリーで DRM フリーの電子ブックで入手できます。いや、私はオライリーや著者とは何の関係もありません。非常に役立つ本です)。これで、Jenkins で何ができるか、システムと必要なものにどのように適合させるのが最適かがわかります。

于 2012-10-18T18:02:33.243 に答える
3

これはあなたが意味するものですか:

  1. スレーブ ノードの設定に移動し、「unittest」などの適切なラベルをスレーブに付けます。単体テストに必要なすべてのスレーブに対してこれを繰り返します (必要に応じて、スレーブは多くのラベルを持つことができることに注意してください)。

  2. ジョブ構成に移動し、「このジョブを実行できる場所を制限する」にチェックマークを付け、そこに「unittest」と入力します。

これらのフィールドのヘルプ テキストもお読みください。

より高度で複雑な CI セットアップについては、ジョブを実行できる場所をパラメーター化する場合は、ノード ラベル パラメーター プラグインも確認してください。

于 2012-10-15T22:03:57.057 に答える