# 输入参数

前面章节我们讲了Pipeline的基本使用方法,使用书写脚本的方式可以满足大多数CI/CD的应用场景。 但是,在某些时候,我们执行的脚本需要依赖一些用户实时的输入来完成流水线的操作,这个时候我们就需要用到pipeline的输入参数parameters功能。 parameters是stage下的一个属性值,它的使用方式如下:

parameters:{
    参数名称:{
        type:'参数类型',message:'弹出对话框的类型描述'
    }
},

示例脚本:接收控制台对话框参数数据值

var pipeline = {
    stages:{
        complie:{
            parameters:{
                project:{
                    type:'string',message:'请输入项目名称'
                }
            },
            node:"uat.example.com",
            workspace:"/opt/",
            steps: {
                printer() {
                    ret = $.parameter('project');
                    $.print(ret);
                }
            }
        }
    }
}

# 人工确认

通常在阶段之间,特别是在不同环境之间,您可能需要人工确认是否可以继续运行。例如:判断应用程序是否在一个足够好的状态可以进入到生产环境阶段。 这同样可以使用 parameters 进行完成。 下面示例中,"check" 阶段会等待人工确认,并且在没有人工确认的情况下不会继续进行。

var pipeline={
    stages:{
        deploy:{
            parameters:{
                confirm:{
                    type:'bool',message:'是否发布生产环境'
                }
            },
            steps: {
                check(){
                    ret =  $.parameter('confirm');
                    if(!ret){
                        $.abort("结束发布");
                    }
                },
                printer() {
                    $.print('deploy');
                }
            }
        }
    }
}