タグ付けされた質問 「jenkins-pipeline」

特にJenkins 2.0のパイプラインアーキテクチャに関する質問。これには、宣言型パイプラインとスクリプトパイプラインの両方が含まれます。

4
Jenkins Pipelineのジョブを成功として時期尚早に終了する最もクリーンな方法は?
フィードされる値の1つが古い値と一致しない限り、ファイルを作成するジョブがあります。、仕事を中断または終了するには、ジェンキンスでクリーンな方法何せずにそれがあることはFAILED?終了するのは正しい動作なので、ビルドにマークを付けSUCCESSます。 そのようなifステートメントになります。 stage ('Check value') { if( $VALUE1 == $VALUE2 ) { //if they do match exit as a success, else continue with the rest of the job } } エラーコードが、ビルドの成功としてマークされることに何らかの形で変換できない限り、エラーコードをスローしたくありません。

2
複雑な並列Jenkinsパイプラインを構築する方法は?
私は、Jenkinsの特注の統合をパイプラインに変換することに興味がありました。しかし、私はそれを行う方法を理解できないようです。 誰でも次のことができるJenkinsスクリプトで私を助けることができますか? 1---2---3-----------9---10 | | |---4-------| | | |---5---6---| | | |---7---| 1: Start pipeline 10: End pipeline 5: Build some files * needed by 6, 7, * needed as artifacts at the end 2, 3, 4, 6, 7: Have jUnit result files, should be available at end of test …

1
パイプラインジョブでバックグラウンドプロセスを実行する
Jenkins宣言型パイプラインを使用して、バックグラウンドでjavaプロセスを実行する方法を探しています。以下はコードのスニペットです stage('Deploy'){ steps{ script{ withEnv(['BUILD_ID=dontkill']) { sh "nohup java -jar test-0.0.1-SNAPSHOT.war &" } } } } JenkinsのProcessTreeKillerを既に認識しており、すべての回答が同じことを提案しています。私は、運のないステップブロック内の環境を使用しようとしました。 Jenkinsバージョン:2.60.1 パイプラインプラグイン:1.1.7 どんな助けも大歓迎です。

3
Jenkins宣言型パイプラインでArtifactoryプラグインを使用する
Jenkins Declarative Pipelineを使用して、ビルドプロセスを自動化します。特定の条件(Sonar、Checkmarx)に合格した場合にのみ、アーティファクトをリモートJFrogリポジトリに公開します。 少し調査した結果、Artifactoryプラグインがこれに役立つことがわかりました。しかし、宣言型パイプラインに統合する方法に関するドキュメントを見つけることができません。以下は、Jenkinsfileのコードスニペットです。 stages{ stage('Pre-Build'){ steps{ script{ def server = Artifactory.server 'LocalJfrog' def rtGradle = Artifactory.newGradleBuild() rtGradle.resolver server: server, repo: 'gradle-dev-local' rtGradle.deployer server: server, repo: 'gradle-release-local' rtGradle.useWrapper = true } } } } 自動公開を無効にしてもサーバー変数を再利用できないため、上記のコードでは条件付き公開を実行できません。

3
Jenkins:ビルド環境としてDockerを使用する権限の問題
JenkinsをUbuntu 16.04マシンにインストールしました。Jenkins自体はコンテナーでは実行されません。yarn installノードイメージを使用して呼び出すだけです。これが私のJenkinsfileです: pipeline { agent any stages { stage('install node modules...') { agent { docker 'node' } steps { sh 'cd /path/to/package.json; yarn install' } } } } かなり簡単ですよね? jenkinsユーザー/グループは112:116であり、ノードコンテナーのuidは1000であるため、yarnプロセス(ノードユーザー1000として実行される)はのようなことはできませんmkdir /.config。 引数を渡してノードコンテナをスピンアップ-u 1000しようとしましたが、永続ディレクトリを作成しようとしたときに権限の問題にぶつかりました。 どちらかの問題のようですが、どうすれば回避できますか? ジェンキンスのログ: 以下は、ビルドが開始して失敗する場所です。 [Pipeline] sh [Pipeline_Test_Jenkins_test-4JTFYMX7KSJY6ZH44VINNGEB7WH2D2HWYZN5ABF6O32O2HBQJYXQ@2] Running shell script + docker inspect -f . node . …

1
ジェンキンスパイプラインの仕事; slackSendステップの適切な引用
これはおそらく100%のユーザーエラーですが、slackSendステップでチャネル名として変数を使用するパイプラインジョブを取得できません。 これはSlackプラグインとBuild User Varsプラグインの両方を使用します。私はBUILD_USER_FIRST_NAMESlackに戻るチャネルを特定するために使用しようとしています(つまり、ビルドを開始するチャネルがメッセージを取得するチャネルでなければなりません)。 パイプラインジョブでビルドユーザープラグインを使用する方法に関するこの記事の途中まで来ましたが、変数を置き換えると問題が発生します。 ジョブの関連部分は次のようになります。 stage ('message') { wrap([$class: 'BuildUser']) { sh "printf '%s' ${BUILD_USER_FIRST_NAME} > name.txt" } archiveArtifacts artifacts: 'name.txt' name = readFile('name.txt') echo "name is $name" //works fine, I get Alex if ( "$output" != null ) { slackSend (channel: '@$name', color: '#36A64F', message: "Job succeeded") } …


2
Jenkinsでのモノレポの特定のパイプラインビルドのトリガー
複数のリポジトリを単一のリポジトリに変換している最中です。複数のリポジトリ構造を単一に変換するため、CIツールとしてJenkinsを選択しています。主な問題が発生しました。 すべてのビルド/テストをコミットごとに実行する必要があるため、ビルド/テスト時間は大幅に増加しました。これは、ビルドツールを使用することで部分的に軽減されます。今回のケースでは、Buckを使用しました。 コミットされたコードに関連するすべてのテストが実行された後、プロジェクトごとにデプロイメントJenkinsfileがあります。再デプロイが必要なプロジェクトのJenkinsfileのみをトリガーするにはどうすればよいですか?そして私がそうすることができるならば、これは正しい習慣ですか?

2
Multibranch Jenkinsビルドで一部のブランチを無効にする方法は?
Jenkinsfileで任意のブランチを実行するためのマルチブランチジョブセットがあります。 マルチブランチパイプラインで実行されているジョブのリストからブランチを削除する場合に考えられるオプションがいくつかあります。 ブランチを削除できます そのブランチのJenkinsfileを削除できます 2番目の解決策は良いですが、コミットしてブランチのgitリポジトリにプッシュする必要があることを除いて、そのブランチが別のブランチにマージされると、Jenkinsfileが吹き飛ばされます。 マルチブランチパイプラインの一部のブランチのみを無効にする最良の方法は何ですか?

1
マージ時またはブランチが削除されたときにスクリプトをトリガーするにはどうすればよいですか?
私はジェンキンスのマルチブランチパイプラインを使用しています。ブランチがマージされ、削除された場合、ジェンキンスはブランチをパイプラインからも削除します。 これは素晴らしいですが、ブランチが削除されたときにコマンド/スクリプトを実行したいのですが、ブランチが削除されたときにjenkinsにコマンドを実行させるにはどうすればよいですか?ジェンキンスがブランチを削除する前にジョブをトリガーする方法はありますか? 編集:私はbitbucketを使用していることを追加する必要があります。Jenkinsがマルチブランチパイプラインのブランチをパージするときにイベントをトリガーできれば、すばらしいでしょう。理想的には、私のgitプロバイダーが何であるかは問題ではありません。

2
コマンドラインからJenkinsfileを実行する方法はありますか?
Jenkins UIを使用したくない、代わりにコマンドラインを使用したい。コマンドラインからJenkinsfileを実行して、Jenkinsサーバーに対して実行したい。 これは可能ですか? Jenkinsfileがあるとしましょう。Jenkinsfileを実行すると、JenkinsサーバーからJenkinsfileが実行されます。ジョブがJenkins UIを介してまだ構成されていないと想定します。

1
Jenkins Artifactoryプラグインがマルチスレッドでダウンロードされない
私の会社では、JenkinsのArtifactoryプラグインを使用してダウンロードしようとするのに苦労しています。これは、リポジトリに小さなファイルがたくさんあり、プラグインが1つのスレッドで動作するため、本当に時間がかかるためです。ダウンロード用のスレッド数を設定できるJFrog CLIをテストしましたが、実際にはそれがうまく機能しています。それでも、元のプラグインを使用する必要があります。 これの回避策はありますか?多分それはArtifactoryサーバー構成と関係があるのでしょうか? 注:私が心配している会社で開発が行われているため、小さなファイルがたくさんあります。保存する前にすべてのファイルをアーカイブすることを考えましたが、アップロードされたすべてのzipファイルはおそらく異なるチェックサムを持っているため、ストレージの点でおそらく非経済的でしょう。

3
Jenkins Pipelineとstash Pull Request BuilderがPRの作成/更新で機能しない
以下は、Jenkins Pipelineを使用するために必要な要件であり、Jenkins Pipelineに初めて参加しました。 開発作業を完了し、変更をBitbucketにプッシュした後、ユーザーはプルリクエストを作成します。 プルリクエストを承認するには、成功したJenkinsビルドが少なくとも1つ必要です。これにより、プルリクエスト用にチェックインされたコードのビルド結果のみを取得したいと思います。 プルリクエストが作成/更新されると、Jenkinsは実際の継続的な統合のために自動的にトリガーされます。 ビルド結果はBitbucketに報告されます。 Stash Pull Request Builderとstash Notifierを使用して、通常のフリースタイルプロジェクトで機能する上記のプロセスを実行しました。 Jenkinsパイプラインを使用して同様の機能を移行する必要があるため、以下のようにjenkinsジョブを作成しました。 PRブランチをチェックアウトしてビルドをトリガーするパイプラインスクリプトは次のとおりです node { stage('Checkout') { checkout( [ $class: 'GitSCM', extensions: [ [$class: 'CleanCheckout'], ], branches: [ [name: ''] ], userRemoteConfigs: [[ credentialsId: 'id', url: 'repourl.git' refspec: ('+refs/pull-requests/*/from:refs/remotes/origin/pr/*/from'), branch: ('origin/pr/${pullRequestId}/from') ]] ]) } stage('Build') { sh 'make' } …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.