問題タブ [jenkins-blueocean]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jenkins - サブフォルダー専用のJenkinsマルチブランチパイプライン
さまざまなアプリで git monorepo を使用しています。現在、アプリのすべてのパイプラインを含むルート フォルダーに単一の Jenkinsfile があります。commit が 1 つのアプリのみを変更した場合、すべてのアプリに対して完全なパイプラインを実行するのは非常に時間がかかります。
分岐には GitFlow のようなアプローチを使用しているため、Jenkins のマルチブランチ パイプライン ジョブはプロジェクトに最適です。
Jenkins で複数のジョブを実行する方法を探しています。それぞれのジョブは、適切なアプリケーションのコードが変更された場合にのみトリガーされます。
私にとって完璧なソリューションは次のようになります。
Jenkins には複数のマルチブランチ パイプライン ジョブがあります。それぞれが、指定されたディレクトリとサブディレクトリへの変更のみを探します。それぞれが独自の Jenkinsfile を使用します。ジョブは X 分ごとに git をプルし、既存のブランチの適切なディレクトリに変更がある場合 - ビルドを開始します。適切なディレクトリへの変更を伴う新しいブランチがある場合 - ビルドを開始します。
この実装を妨げているもの
マルチブランチ パイプラインによるスキャン実行中に無視する必要があるフォルダーへのコミットを定義する方法がありません。マルチブランチ パイプラインの「追加の動作」には、「ポーリングは特定のパスへのコミットを無視する」オプションがありませんが、パイプラインまたはフリースタイル ジョブにはあります。しかし、マルチブランチ パイプラインを使用したいです。
「project1」のみが変更された新しいブランチがある場合、「project2」のマルチブランチパイプラインがトリガーされるたびに、とにかくこの新しいブランチを検出してビルドするため、ここで説明するソリューションはうまくいきません。適切なコードに変更があったかどうかに関係なく、新しいブランチごとに、Multibranch パイプラインのそれぞれが少なくとも 1 回実行されることを意味します。
同じgitリポジトリを監視しているが、適切なコードが変更されたときにのみトリガーされるいくつかのマルチブランチパイプラインを実装する方法について、助けや提案を感謝します
jenkins - ジェンキンス ブルー オーシャン環境変数
作成されたすべてのブランチ (コミットごと) の自動テストにブルー オーシャンを使用しています。現在、テストは少し面倒なので、一部のテストでは、外部システムの環境変数を設定する必要があります。基本的に、これは統合テストです (そこにあるはずはありませんが、今のところあります)。Jenkinsfile での設定とは別の環境変数を設定するにはどうすればよいですか。別のシステムの資格情報であるため、そこに置くことはできません。