を入力を使用して、世界的なパイプラインレベルでエージェントなしを使用せず、個々の段階にエージェントを割り当てることが非常に重要です。 入力プロシージャを別のステージに入れて、エージェントなしのも使用します。入力ステージにエージェントノードを割り当てると、そのエージェントエグゼキュータは、ユーザーがビルドプロセスを続行または中止するまで、このビルドによって予約されたままになります。
この例では、入力を使用して助ける必要があります。それだけ返すために、単一のパラメータを持っている場合
def approvalMap // collect data from approval step
pipeline {
agent none
stages {
stage('Stage 1') {
agent none
steps {
timeout(60) { // timeout waiting for input after 60 minutes
script {
// capture the approval details in approvalMap.
approvalMap = input id: 'test', message: 'Hello', ok: 'Proceed?', parameters: [choice(choices: 'apple\npear\norange', description: 'Select a fruit for this build', name: 'FRUIT'), string(defaultValue: '', description: '', name: 'myparam')], submitter: 'user1,user2,group1', submitterParameter: 'APPROVER'
}
}
}
}
stage('Stage 2') {
agent any
steps {
// print the details gathered from the approval
echo "This build was approved by: ${approvalMap['APPROVER']}"
echo "This build is brought to you today by the fruit: ${approvalMap['FRUIT']}"
echo "This is myparam: ${approvalMap['myparam']}"
}
}
}
}
入力機能のリターンを、それが直接その値を返します。入力に複数のパラメータがある場合、値のマップ(ハッシュ、ディクショナリ)を返します。この値を取得するには、Groovyスクリプトに移行する必要があります。
入力コードをタイムアウトステップでラップして、ビルドが未解決の状態に長時間残らないようにすることをお勧めします。
あなたの問題を解決した場合、私の答えを受け入れることができれば幸いです。 –