問題タブ [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 プラグインは、withEnv ワークフロー ステップを使用して設定された変数を認識できません
withEnv
ステップ(または他のラッパータイプ)で設定された環境変数をgradleプラグインに取得させたいです。ステップを使用して gradle を呼び出すsh
と変数が見つかりますが、gradle プラグインを使用するとそうではありません。
gradle プラグインはこれと同等の処理を実行します。
run.getEnvironment() の Javadoc には次のように記載されています。
このビルドのプロセスを起動するために使用される環境変数を含むマップを返します。外部プロセスを呼び出す BuildSteps は、これを使用する必要があります。これにより、BuildWrappers およびその他のプロジェクト構成 (JDK の選択など) が有効になります。
以前の getEnvVars() とは異なり、このマップにはオーバーライドだけでなく環境全体が含まれているため、値を内省してその動作を変更できます。
プラグインをデバッグすると、gradle 呼び出しに渡される環境内の変数が 12 個未満であることがわかります。これらの変数はいずれも、withEnv
提供されるべきではありません。私が知る限り、このsh
ステップはまったく異なる拡張ポイントを使用しており、そのインスタンスEnvVars
がはるかに完全であるように見えるため、まっすぐです。問題が にないことは確かですがwithEnv
、gradle プラグインを修正する方法がわかりません。
間違った呼び出しを使用していますか? それとも間違った拡張ポイントですか?
jenkins - ジェンキンスでの手動承認後にジョブを開始する
ジョブ A が正常に実行された後、ジョブ B をトリガーする必要があります。ジョブ A が正常に実行されると、電子メール通知が承認者に送信されます。承認者は電子メールを受信し、メール リンクをクリックします。彼は Jenkins ページにルーティングされ、そこでジョブ B の実行を承認します。
承認者の名前を言及できる場所でどのプラグインを使用すればよいか、承認者がリンクをクリックしてJenkinsページにログインした後に「承認」と言う方法がわかりません。
jenkins-workflow - Jenkins Workflow プラグインで SCM ポーリングを機能させる方法
通常のフリースタイル プロジェクトでは、リリースしたい Git リポジトリを指すように SCM プラグインを構成し、「Poll SCM」オプションを有効にします。これにより、Stash Webhook を構成して、変更があるたびに Jenkins に伝えることができます。そのレポに。このようにして、変更がリポジトリにプッシュされるたびにジョブをトリガーできます。
しかし、フリースタイル プロジェクトの代わりにワークフローを使用すると、ビルドする必要があるコードの SCM が groovy ワークフロー スクリプトでプログラムによって指定されます。つまり、Stash Webhook をリッスンしません。代わりに、ワークフローで直接構成されている SCM は、Groovy スクリプト自体の SCM であり、ビルド/リリースしようとしているコードベースとは異なるため、トリガーをそれに基づいたくない.
ワークフロー プラグインを使用するときに SCM ポーリングを実現する方法について何かアイデアはありますか?
jenkins - Jenkins ワークフローと並行して実行するには、構築ステップを耐久性にする必要がありますか?
jenkins ワークフローの並列ステップを試しています。現在、私のフローは(本質的に)次のようになっています。
両方の入力が異なるエグゼキューターで実行されているように表示されますが、両方で「続行」をクリックすると、最初のデプロイのみが実際に開始されます。デプロイは、レガシー ジョブ用に作成され、最小限のワークフローに変換されたカスタム プラグインとして実行されます。Executor を待っているという明確なメッセージは表示されません。単にデプロイが開始されないだけです。1回目が終わるとすぐに2回目が始まります。
並列ステップで両方を実行できるようにする前に、DurableTask (または別のもの?) を実装する必要がありますか? これまでの私の回心は非常に軽いものだったので、より真の回心を試す時が来たのかもしれません.
git - git機能ブランチをjenkins-workflowで動作させるには?
統合テストを行うために jenkins-workflow をセットアップしようとしています。統合テストは次のように機能します。
LibraryA
誰かがgit の機能ブランチに変更を加えました。jenkins に機能ブランチのコードに対して単体テストを実行させたいと考えています。次に、この機能ブランチのコードをclient1
and client2
(のユーザーであるLibraryA
) にインストールしてテストを実行したいと考えています。
の機能ブランチへの適切なコミットを取得することを除いて、すべてを実行するワークフローをセットアップすることができましたLibraryA
。代わりに、私のセットアップは、LibraryA
.
多くのフィーチャー ブランチがあるため、ワークフロー セットアップで特定のブランチをハードコーディングすることは適切ではありません。ワークフロー ジョブをトリガーするコミットのハッシュを取得する方法が必要なようです (SCM ポーリングを使用している場合でも)。
私のセットアップは次のようになります。
したがって、私の現在の質問は、最初のテストで実行する適切なコミットを取得するために git リポジトリ/ポーリングをセットアップする方法です。これlibraryA_version.txt
は後続のテストで使用されます。
または、このプロセスをまったく別の方法で行う必要がありますか?
jenkins - Jenkins ワークフロー ジョブでのロックの使用
ジョブが同じノードで同時に実行されるのを防ぐために、ワークフロー ジョブでロックを使用したいと考えています。
ロックとラッチのプラグインの機能を使用して、ジョブの並列実行を制御したいと考えています。ジョブ A が特定のノードでビルドを開始すると、ジョブ B は A が完了するまで待機する必要があり、その後 B を実行できます。
どうすればそれを達成できますか? または別の解決策がありますか (ワークフロー ジョブでロックがサポートされていない場合) ?
ありがとうございました。
jenkins-workflow - ワークフロープラグインを使用してJenkinsのworkflowLibsでコードを共有する方法
私のworkflowLibsディレクトリには、いくつかのファイルがあります。
Build.groovyは次のようになります。
Test.groovyは次のようになります。
ビルドで次のようなことをしたい:
しかし、独自のディレクトリに Pipeline.groovy 参照ファイルを作成する方法がわかりません。私はこれをやってみました:
しかし、私はいつも得ます:
workflowLibsディレクトリ構造内の groovy ファイル間でコードを共有する適切な方法は何ですか?