私は2週間インターネット全体を検索しましたが、freenode IRCとJenkinsユーザーグループのメーリングリストで尋ねましたが、ここでは答えがないので、私は最後の希望ですJenkinsパイプラインと膨大な並列ステップ
私は何百もの並列ブランチを生成するJenkinsスクリプトパイプラインを持っており、何百ものスレーブノードで同時に実行する必要があります。現時点では、Jenkins BlueOceanのユーザーインターフェイスはそれに適していないようです。私たちはすべてのステップを表示することができないという点に達しています。
私たちの必要性を理解するために、何らかのバックグラウンドを提供する必要があります。私たちには数千のBehat/Seleniumを持つ巨大なプロジェクトがあります。 Jenkinsからソースコードをダウンロードし、アーティファクトをJenkinsにアップロードすることで、テストを実行するすべてのテストとコンシューマを格納するキューイングシステム(RabbitMq)を使用していましたが、これまでのところ基本的なソリューションを実装しましたが、 Jenkinsネイティブの奴隷であり、それは十分に保守できません(例えば、リアルタイムの出力ログと使用統計の恩恵を受けません)。
ここに問題を記述する未解決の問題があることを知っています。https://issues.jenkins-ci.org/browse/JENKINS-41205しかし、基本的には、次の週には回避策が必要です(私たちのチームはこの新しいパイプラインを長い間待っています)。
当社pippelineは、現時点ではそのようになっています
Build --- Unit Tests --- Integration Tests --- Functional Tests ---
| | |
tool A suite A matrix-A-A-batch 0
tool B suite B matrix-A-A-batch 1
tool C matrix-A-A-batch 2
matrix-A-A-batch 3
....
"Unable to display more"
あなたがここに私たちのJenkinsfileのフルバージョンを見つけることができます:https://github.com/willy-ahva/pim-community-dev/blob/086e4ed48ef1a3d880ca16b6f5572f350d26eb03/Jenkinsfile(それは複雑に見えますがありますが、基本的には、本当の問題は、「機能テスト」であります段階)
私の質問は以下のとおりです。
- 私は良い方法を並行使用していますか?
- Jenkins/BlueOceanの問題のみですか、リンクした問題に貢献する必要がありますか?もしそうなら、私はJava開発者ではありません。
- MultiJobを使用し、ステップの代わりにジョブを並列化すべきですか?
- 私は使用できる並列性以外のツールはありますか? (何らかのフォークなど)?
ありがとうございました。私はJenkinsがPipelineとBlueOceanのUIになったことを愛しています。私は本当に私たちのチームでそれを働かせたいと思っています。
Spencer Maloneが解決したので、私たちはこの種の並行処理のためにキューシステムを保ちました。私たちはビルドを少し変更しましたので、スケーラビリティがより簡単になりました(マスターとコンシューマ間の多対1の関係をすべて削除して、ボトルネックを発生させないようにしました)。 –