Extended Choice Parameterプラグインは素晴らしく、UI経由で設定されたジョブで使用します https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+plugin
ただし、Jenkinsfile
スタイルのパイプラインスクリプトで動作させるのに苦労しています。 Jenkinsのパイプライン構文ジェネレーターが次のスニペットを作成するため、Extended Choice ParameterプラグインはまだPipelineスクリプトと完全に互換性がないようです。
parameters([<object of type com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition>])
パラメータを手動で作成すると、 https://issues.jenkins-ci.org/browse/JENKINS-32188 で説明したのと同じ動作が得られます
org.kohsuke.stapler.NoStaplerConstructorException: There's no @DataBoundConstructor on any constructor of class
@DataBoundConstructor
を使用しないExtendedChoiceParameterDefinition
の問題を回避できる回避策を知っている人はいますか?
2019年4月2日以降、このコミットにより可能になりました: https://github.com/jenkinsci/extended-choice-parameter-plugin/pull/25
たとえば、次のように使用できます。
properties([
parameters([
extendedChoice(
name: 'PROJECT',
defaultValue: '',
description: 'Sélectionnez le projet à construire.',
type: 'PT_SINGLE_SELECT',
groovyScript: valueKeysScript,
descriptionGroovyScript: valueNamesScript
)
])
])
考えられるすべてのパラメーターを知りたい場合は、 ソースコードを参照 にする必要があります。 「type」キーのすべての可能な値を知りたい場合は、 PT_*
定数 。
このpbの回避策は次のとおりです。
https://Gist.github.com/jgraglia/44a7443847cff6f0d87387a46c7bb82f
すなわち、すべての引数を宣言することにより、パラメータを手動でインスタンス化します
それにより、パイプラインにマルチチェックリストパラメーターを追加することができました。
Mkobitが言ったように、現在、拡張選択プラグインをビルドパラメーターとして使用することはできません。
回避策として使用したいのは、次のような構成です
timeout(time: 5, unit: TimeUnit.MINUTES) {
def result = input(message: 'Set some values', parameters: [
booleanParam(defaultValue: true, description: '', name: 'SomeBoolean'),
choice(choices: "Choice One\nChoice Two", description: '', name: 'SomeChoice'),
stringParam(defaultValue: "Text", description: '', name: 'SomeText')
]) as Map<String, String>
}
echo "${result.SomeBoolean}, ${result.SomeChoice}, ${result.SomeText}"
そして、私のパイプラインの始めにそれを呼び出します。その後、ビルドの開始直後にこれらの入力を求められます。