`input` 是一个指令还是一个步骤

Is `input` a directive or a step

The input directive on a stage allows you to prompt for input, using the input step. ..

(引用管道语法,Jenkins 用户文档 https://jenkins.io/doc/book/pipeline/syntax/#input

所以input实际上是一个指令,还是一个步骤?如何理解短语“使用 输入步骤

此处使用的管道(摘录):

stage('StageName') {
    when { environment name: 'VAR1', value: 'true' }
    steps {
        input {
            message: "press OK to continue"
        }
        dir('doithere') {
            git url: gitcoord[0], branch: gitcoord[1], credentialsId: gitcoord[2] 
            cmd('ls -alh') 
        }
    }
}

运行-时间:

WorkflowScript: 336: Expected a step @ line 336, column 34.
                       message: "press OK to continue"
                                ^

在声明式管道中,您必须将其直接放在 stage 级别 ("directive") 之下。那么它的形式是input { .. }.

在脚本化管道中(或声明性管道中的 script 块),它作为一个正常步骤存在。语法是 input(..):

stage('StageName') {
    when { environment name: 'VAR1', value: 'true' }
    steps {
        dir('doithere') {
            git url: gitcoord[0], branch: gitcoord[1], credentialsId: gitcoord[2] 
            cmd('ls -alh') 
            input(message: "press OK to continue")
            cmd('rm -rf *')
        }
    }
}

下面一个对我有用:

pipeline {
    agent any
    stages {
        stage('stage1') {
            input {
                message "press OK to continue"
            }
            steps {
                sh "mkdir dir1"
                dir("dir1") {
                    sh "echo 'Hello'"
                }
            }
        }
    }
}