:上記で私はJenkinsfileで、この一見単純なパターンを使用しようとしていますどのように私はジェンキンスパイプラインで実行パラメータを使用することができます
def params = input message: 'Define versions to use:', parameters: [
[
$class: 'RunParameterDefinition',
description: '',
filter: 'SUCCESSFUL',
name: 'pr1_run',
projectName: 'MyProject1'
], [
$class: 'RunParameterDefinition',
description: '',
filter: 'SUCCESSFUL',
name: 'pr2_run',
projectName: 'MyProject2'
]
]
// ...
step([
$class: 'CopyArtifact',
fingerprintArtifacts: true,
projectName: 'MyProject1', // resorted to this
selector: [
$class: 'ParameterizedBuildSelector',
parameterName: '${params.pr1_run}'
],
target: _dir
])
を、私は私がしました
java.io.NotSerializableException: org.jenkinsci.plugins.workflow.job.WorkflowRun
を取得
step([
$class: 'CopyArtifact',
fingerprintArtifacts: true,
projectName: 'MyProject1',
selector: [
$class: 'SpecificBuildSelector',
buildNumber: params.pr1_run.number
],
target: 'pr1'
])
と私は
を得る:またSpecificBuildSelector
を試してみました
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use field hudson.model.Run number
ユーザーが選択した多数の上流プロジェクトビルドを最終ビルドに結合したいだけです。
私は¹のやり方を理解していません。いずれにせよ、ビルドセレクタを使う必要はなく、単に 'step([$ class: 'CopyArtifact'、fingerprintArtifacts:true、run:pr1_run])'を使うのが理想的です。なぜ私は、私が望む正確な実行を完全に記述しているオブジェクトを手元に持っている場合、なぜプロジェクト名を2回指定するのか。 –
(a)_Script Security_プラグインを1.18以降に更新します。 (b)プロジェクト名をローカル変数に保存する場合、プロジェクト名を2回指定する必要はありません。 (c)上で説明したように、 'Run'sは' Serializable'ではないので、それらに参照することはできません。ビルド番号のようなフラットなデータを扱うほうが良いです。 –
スクリプトセキュリティプラグインの更新はここでは役に立ちません(少なくとも1.27以降)。 –