2

バックグラウンド

「パイプライン ジョブ」と「ビルド ジョブ」の 2 つのジョブがあるとします。「パイプライン ジョブ」はマスターで実行され、もちろんパイプラインです (groovy を使用)。次に、パイプラインのビルド部分として、Windows で実行されているスレーブを使用します。「ビルド ジョブ」は、マスターでは実行できない何かをビルドする責任があります。マスターも Windows で実行されていますが、特定のビルドに必要なソフトウェアが不足しています。

質問

次のようなグルーヴィーなスクリプトがあります。

#!groovy
node {
    stage('Environment Preparation') {
        // fetches stuff and sets up the environment on master
    }
    stage('Unit Testing') {
        // some testing
    }
    stage('Build on Slave') {
        def slaveJob = build job: 'BuildJob'
    }
}

「BuildJob」が「このプロジェクトを実行できる場所を制限する」、つまりスレーブである場合、正常に動作します。

私の問題は、「BuildJob」からの出力をパイプライン ログに出力することです。これを行うための賢い方法はありますか?私はすべてに対してオープンなので、'BuildJob' などを開始するためのより賢い方法を知っていれば、ここで熱望しています。

ありがとう!

4

2 に答える 2

2

編集済みスクリプト承認の下でアクセスしたいものを承認する必要があります。本当に getRawBuild が必要かどうかはわかりませんが、うまくいきました。

Jenkins ジョブのコンソール出力を検索する

#!groovy
node {
    stage('Environment Preparation') {
        // fetches stuff and sets up the environment on master
    }
    stage('Unit Testing') {
        // some testing
    }
    stage('Build on Slave') {
        def slaveJob = build job: 'BuildJob'
        println slaveJob.rawBuild.log
    }
}

jenkinsurl/scriptApproval/ 以下を承認します。

method hudson.model.Run getLog
method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild
于 2016-11-28T08:49:43.273 に答える