問題タブ [jenkins-workflow]
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ワークフロー
ワークフロー スクリプトからジョブが実行中またはスケジュールされているかどうかを確認することはできますか?
ステージを使用して並行性を管理するだけで十分に思えるかもしれませんが:
次のように、これらの段階でビルドを実行します。
誰かがジョブtest-jobを手動で開始した可能性があり、ワークフロー スクリプトでその状況を処理したいだけです。たとえば、ビルドをスキップするか、ビルドが完了するまで待機します。
jenkins-workflow - Workflow CPS Global Lib git リポジトリに関するセキュリティ
CPS Global Lib git repoで利用できるセキュリティがある場合、どのようなセキュリティがありますか? これは、SSH 公開鍵を追加した人なら誰でも完全に読み取り/書き込み可能ですか? または、このリポジトリへのアクセスを制限する方法はありますか?
jenkins-workflow - jenkins ワークフロー プラグイン MissingMethodException
jenkins ワークフロー プラグインを試しており、チュートリアルhttps://github.com/jenkinsci/workflow-plugin/blob/master/TUTORIAL.mdを開始しました。
jenkins 1.628 CloudBees Build Flow 0.18 tomcat 7.0.56 Java 1.8.0_25 を使用し、最新のワークフロー プラグインをすべて新しくインストールしました。
最初の例を試すと
このエラーが発生します
コードを次のように変更すると
ジョブが実行されます。
次の例を試してみると
このエラーが発生します
私は何を逃したのですか?
testing - 1 つのスレーブ上のプロジェクト間でアーティファクトを共有する
マスターがローカル サイトにあり、スレーブが AWS にある Jenkins 用にマスター/スレーブ構成をセットアップしました。そのようにJenkinsをセットアップしたいと思います
- ビルドして
- テスト
個別のプロジェクトです。これを機能させるには、ジョブ間でビルドアーティファクトを渡す必要があります。アーティファクトのサイズは数百 MB です。残念ながら、すべてのプロジェクトは同じノードでビルドされますが、アーティファクトは常にマスターを介して渡されるため、速度が大幅に低下します。
アーティファクトをビルド スレーブのローカルに保持し、プロジェクト間で渡す方法はありますか?
git - パラメータを下流のプロジェクトに渡す
Jenkins でいくつかのプロジェクトを連結し、すべてが元のプロジェクトから Git パラメータ ( など)${GIT_REVISION}
にアクセスできるようにしたいと考えています。${GIT_BRANCH}
Parameterized Trigger Pluginを使用してみましたが、どこでどのオプションをオンにする必要があるのか わかりません。そのままでは機能しないようです。
ヒントはありますか?
jenkins-workflow - Jenkins ワークフロー API - ステージ ステータス
ワークフロー ジョブでクエリできる情報は何ですか? 特定のビルドのステージ ステータス (成功、失敗、まだ到達していない、中止など) に関する情報はありますか? このメソッドinput
を使用してステップとやり取りできることがわかりましたが、ビルドに関して取得できるメタデータはどこにありますか?
jenkins-workflow - ワークフロー ビルドの優先順位
前のビルドが一時停止している間に、あるビルドが別のビルドを上回ると予想される動作は何ですか? 2 つのステージを持つワークフロー ジョブがあり、その上で 2 つのビルドを実行し、ビルド #1 がステージ 1 で一時停止している場合 (たとえば、誰かがそれを中止するのを忘れた可能性があります)、ビルド #2 は既にステージ 2 にあるか、ステージ 2 を過ぎています。ビルド #1 を中止することが望ましいですか? おそらく、最後のステップが本番環境へのデプロイである場合、それを続行したくないでしょう。この状況にどのように対処することが期待されているか、または他の人がすでにどのように対処しているかについての洞察を探しています。対処方法はたくさんあります。
jenkins-workflow - Jenkins ワークフロー: ステップ ID を取得または設定する方法
Jenkins ワークフローの並列タスク内のステップを参照したいと思います。しかし、複数の並列タスクのステップに対して、ステップ ID が非決定論的に作成されているようです。入力ステップの場合、ステップ ID を手動で指定できます。シェル ステップのステップ ID を指定するか、ステップ ID を照会することは可能ですか?
目的は、並列タスク内のシェル スクリプトへのリンクを作成することです。
jenkins - 他の一連のジョブの完了時に Jenkins ジョブをトリガーするにはどうすればよいですか?
他の一連のジョブの完了に応じて 1 つのジョブしか持たない単純なケースは簡単です。マルチジョブを使用するか、ビルド フロー プラグインを使用しparallel { ... }
ます。私が解決しようとしているケースは、より一般的なものです。たとえば、次のようになります。
これらの各ジョブは、前提条件が完了したときにのみトリガーされるようにしたいと考えています。
ビルド フロー プラグインも、結合プラグインも、ジョブ DSL プラグインも、これに適したメカニズムを持っていないようです。もちろん、すべてのジョブを開始して Jenkins をポーリングさせることもできますが、それは非常に見苦しいものです。
もう 1 つの行き止まりは、「アップストリーム ジョブ トリガー」です。アップストリーム ジョブの実行だけでなく、ジョブの特定のビルドをトリガーしたいと考えています。
アップデート
1 つの回答では、マルチジョブ プラグインについて言及しています。実際にこの問題を解決するために使用できますが、スケジューリングと合計ビルド時間はほとんどの場合最悪のケースです。たとえば、次の依存関係グラフがあり、ビルド時間が次のようになっているとします。
マルチジョブ プラグインを使用すると、以下が得られます。
すべての前提条件が完了したときに次のジョブをトリガーする方法があれば、合計ビルド時間はわずか 57 分になります。
ここでの答えは、できれば独自のポーリングメカニズムを作成せずに、その動作を取得する方法を説明する必要があります。
update 1 1/2 以下のコメントでは、左側のタスクと右側のタスクを 1 つのサブタスクにグループ化することが提案されました。はい、これはこの例では実行できますが、これを一般的に自動的に実行するのは非常に困難です。たとえば、追加の依存関係があるとします。right2 は left1 に依存します。与えられたビルド時間では、right2 が起動される前に left1 が完了しているため、最適なビルド時間は変わらないはずですが、この知識がなければ、right1 がないリスクを冒さずに、left1 と left2 を同じグループにまとめることができなくなります。利用可能。
更新 2
ここには既成の答えがないようです。システムのグルーヴィーなスクリプトを自分でコーディングする必要があるようです。質問に対する私自身の回答を参照してください。
更新 3
最終的にマルチジョブ プラグインをフォークし、その中に新しいロジックを記述しました。いくつかのクリーンアップの後、新しいプラグインとして公開できることを願っています...