私はJenkinsパイプラインで遊んでいますが、入力ステップの結果をキャプチャする際にいくつか問題があります。入力手順を次のように宣言すると、...Jenkins入力ステップの結果をキャプチャ
stage('approval'){
steps{
input(id: 'Proceed1', message: 'Was this successful?',
parameters: [[$class: 'BooleanParameterDefinition', defaultValue: true, description: '', name: 'Please confirm you agree with this']])
}
}
...すべてがうまくいきます。ただし、キャプチャの結果(質問に与えられた回答)を取得しようとすると、スクリプトは機能しません。たとえば、次のようなスクリプト:次のエラーで
pipeline {
agent { label 'master' }
stages {
stage('approval'){
steps{
def result=input(id: 'Proceed1', message: 'Was this successful?', parameters: [[$class: 'BooleanParameterDefinition', defaultValue: true, description: '', name: 'Please confirm you agree with this']])
echo 'echo Se ha obtenido aprobacion! (como usar los datos capturados?)'
}
}
}
}
...結果:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 6: Expected a step @ line 6, column 13.
result=input(id: 'Proceed1', message: 'Was this successful?', parameters: [[$class: 'BooleanParameterDefinition', defaultValue: true, description: '', name: 'Please confirm you agree with this']])
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1073)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
...
at hudson.model.Executor.run(Executor.java:404)
Finished: FAILURE
は非常に興味深い何かが、私はパイプラインの{}外の入力を移動した場合、それが動作することです完璧に良い。私は 'def'ステートメントで同じ動作が発生することに気付きました(私はパイプライン{}外の変数を定義して使用できますが、内部で定義することはできません)。
私はここでかなり基本的なものを見逃しているに違いないと思いますが、数時間後に別の設定を試してみると、それを動作させることができませんでした。パイプライン{}内で使用されるロジックがごくわずかなコマンドに制限されているだけであるか?人々は複雑なパイプラインをどのように構築するのですか?
ご協力いただければ幸いです。