私は2週間インターネット全体を検索し、freenode IRCとJenkinsユーザーグループのメーリングリストでそれについて尋ねましたが、答えが得られなかったので、ここにいます、あなたは私の最後の希望です(プレッシャーはありません)
何百ものスレーブ ノードで同時に実行する必要がある何百もの並列ブランチを生成する Jenkins スクリプト パイプラインがあります。現時点では、Jenkins BlueOcean のユーザー インターフェイスはそれに適していないようです。すべてのステップを表示できないところまで来ました。
私たちのニーズを理解していただくために、何らかの背景情報を提供する必要があります。私たちの会社には何千もの Behat/Selenium を含む巨大なプロジェクトがあり、これを順次実行すると実行に 30 時間以上かかります。キューイング システム (RabbitMq) を使用して、Jenkins からソース コードをダウンロードし、アーティファクトを Jenkins にアップロードしてテストを実行するすべてのテストとコンシューマーを格納する基本的なソリューションを実装しましたが、これはそれほどスケーラブルではありません。 Jenkins のネイティブ スレーブであり、保守性が十分ではありません (たとえば、リアルタイムの出力ログと使用状況統計の恩恵を受けていません)。
ここに問題を説明する未解決の問題があることは知っています: https://issues.jenkins-ci.org/browse/JENKINS-41205しかし、基本的には、来週に向けて機能する回避策が必要です (私たちの開発チームは待っていますこの新しいパイプラインは長い間使用されています)。
現時点では、パイプラインは次のようになります。
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 開発者ではありません)
- マルチジョブを使用して、ステップの代わりにジョブを並列化する必要がありますか?
- パラレル以外に使用できるツールはありますか? (ある種のフォークか何か)?
どうもありがとうございました。Pipeline と BlueOcean UI を使用して Jenkins がどのようになったかが気に入っています。それをチームで機能させたいと思っています。