说明:下面以声明式的形式进行介绍
(1)agent
说明:多个构建节点的情况下,节点标签很重要
pipeline{
// 随机选择工作节点运行
agent any {
customWorkspace "${workspace}"
//额外的参数
}
}
//'必须指定该标签'
(2)根据阶段出现的状况所做的策略
补充:post和stages是'并级的(同一级别)',一般一个post对应一个stages
(3)stages
(4)steps
说明:一般'一个阶段运行一个步骤'
备注:里面还可以'运行linux的命令'
(5)环境变量
(6)options可选参数
(7)parameters参数
说明:在pipeline定义流水线参数,'必须执行一遍才有'
'原因':首先让其读取pipeline进行识别,才能执行
补充:在图形配置实现的,全部可以以jenkins的形式来实现!
(8)触发器
(9)tools(注意目前仅仅支持这三种)
使用方式如下
script标签'比较特殊':声名式和脚本式语法可以'并存'
报错:
备注:目前暂时没有搞懂错误的原因
'可能的原因':PATH环境变量,还是'原生的几个路径',我们在Linux环境中的定义的'并没有生效'
在jenkins中认为的默认的PATH,没有找到java二进制程序,就会寻找JAVA_HOME换将变量
# 解决1:在全局工具配置中寻找
# 解决2:软链接
验证
'注意一点':jenkins的pileline中执行'mvn -v'和linux shell环境执行'mvn -v'的区别
(11)input(交互)
备注:下面的用流水线语法生成
注意位置:
备注:确定用户传参才可以
(12)when(逻辑判断)
说明:写在step里面,只有执行成功,才往下执行,否则跳出!
观察:是否会跳过该阶段
(13)parallel
场景:打包(java的war包)和'构建的时间比较长',可以让其作为一个并行的过程!
实质:把两个stage并行起来,启动一个并行的stage,一个stage包含两个stage!
实验:把构建和代码扫描两个阶段结合到一个并行的stage
'含义':failure true --->'并行的话,第一个失败后面的也失败'
//并行的配置
stage("parallel"){
failFast true
parallel {
//(2)构建
stage("Build"){
steps{
timeout(time:20,unit:"MINUTES"){
script{
println('应用打包')
println("${test}")
}
}
}
}
//(3)代码扫描
stage("CodeScan"){
steps{
timeout(time:30,unit:"MINUTES"){
script{
print("代码扫描")
mv = tool "maven"
sh "${mv}/bin/mvn --version"
}
}
}
}
}
}
说明:通过Blue Ocean查看并行效果