1. input 流水线交互
使用场景:有些需要人工确认的步骤,例如选择部署的环境。
参数解析
- message: 提示信息
- ok: 表单中确认按钮的文本
- submitter: 提交人,默认所有人可以
- parameters: 交互时用户选择的参数
复制粘贴到代码中运行
查看运行信息
发现项目暂停,点击需要输入而暂停
选择部署环境
点击确定,项目运行结束查看输出信息。
其他输入方式:阶段视图上也可以进行选择。
打开Blue Ocean
也有很明确的提示
2. when 阶段运行控制
判断条件
- 根据环境变量判断
- 根据表达式判断
- 根据条件判断(not/allOf/anyOf)
代码实例:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'build......'
}
}
stage('Deploy') {
when {
environment name: 'DEPLOY_TO', value: 'DEV'
}
steps {
echo 'Deploying.......'
}
}
}
}
// allOf 条件全部成立
when {
allOf {
environment name: 'CAN_DEPLOY', value: 'true'
environment name: 'DEPLOY_ENV', value: 'dev'
}
}
// anyOf 条件其中一个成立
when {
anyOf {
environment name: 'CAN_DEPLOY', value: 'true'
environment name: 'DEPLOY_ENV', value: 'dev'
}
}
在流水线中使用anyOf,当两个条件都满足时,才会运行。
Version为1.0 envType为dev时运行
任意一个满足后,可以执行
3. parallel 阶段并行
场景: 自动化测试,多主机并行发布。
pipeline {
agent any
stages {
stage('Parallel Stage') {
failFast true
parallel {
stage('windows') {
agent {
label "build"
}
steps {
echo "windows"
}
}
stage('linux') {
agent {
label "build"
}
steps {
echo "linux"
}
}
}
}
}
}
运行流水线查看blue ocean,是并行构建的。
failFast true 参数,使当并行的阶段,有一个出错时,其他阶段都不执行。
添加报错。
pipeline {
agent any
stages {
stage('Parallel Stage') {
failFast true
parallel {
stage('windows') {
agent {
label "build"
}
steps {
echo "windows"
error "error!!"
}
}
stage('linux') {
agent {
label "build"
}
steps {
echo "linux"
sh "sleep 100"
}
}
}
}
}
}