pipeline groovy
一.变量
1.直接定义
def x="abc"
2.从脚本执行结果赋值变量
branch = "/jen_script/return-branch.sh $group $job".execute().text
将结果通过逗号分隔,写入数组里
branch = "one, two, three"
branch_list = branch[1..-2].tokenize(',')
3.引号
```python
def x="abc"
print '${x}' //输出${x},不支持变量
print "${x}" //输出abc,支持变量
print ''' //输出${X},不支持变量
${X}
'''
print """ //输出abc,支持变量
${X}
"""
二.流程判断
1.判断变量
if (x='abc') {
echo "abc"
} else (x='bcd') {
echo "bcd"
}
三.方法
1.定义方法并调用
//String是声明这个变量应该类型是字符串,可以省略,类型则根据传入类型而变
def createName(String givenName, String familyName){
return givenName + "" + familyName
}
//调用,可省略括号
createName(familyName = "Lee", givenName = "Bruce")
2.方法添加默认参数
def sayHello(String name = "zhangsan"){
print "hello ${name}"
}
//不传参时括号不能省略了
sayHello()
3.闭包
//定义闭包
def codeBlock = {print "hello closure"}
//闭包还可以直接当成函数调用
codeBlock() //输出hello closure
4.闭包作为参数传递给另一个方法
//定义闭包
def codeBlock = {print "hello closure"}
//定义一个方法,它接收一个闭包参数
def sayHello(closure) {
closure()
}
//在调用sayHello方法时可以这样
sayHello(codeBlock)
//如果把闭包定义的语句去掉
sayHello( {print "hello closure"} )
//由于括号是非必需的,所以
sayHello {
print "hello closure"
}
//如果sayHello改成名字为pipeine就是,是不是很像jenkins的pipeline
pipeline {
print "hello closure"
}
5.闭包另类用法,定义一个stage方法
//定义方法,传一个正常变量和一个闭包
def stage(String name, closue) {
print name
closue()
}
//在正常情况下,这样使用stage函数
stage("stage name", {print "closure"})
//执行打印
//stage name
//closure
//可以用另一种写法
stage("stage name") {
print "closure"
}
四.数组
1.定义数组,然后判断是否在数组中。比如判断two是否在one这个数组里,需要先定义字符串,后面切割。
pipeline {
agent any
environment {
one = "xxx,ddd,lll"
two = "ddd"
}
stages {
stage('pull') {
steps {
script {
list = one.split(',')
for ( i in list ) {
echo "$i"
echo "$two"
if (i == two) {
echo "ok two"
} else {
echo "no two"
}
}
}
}
}
}
}
pipeline groovy的更多相关文章
- Pipeline load and load from git
load https://www.sourcefield.nl/post/jenkins-pipeline-tutorial/ node { // Use the shell to create th ...
- [持续交付实践] pipeline使用:语法详解
一.引言 jenkins pipeline语法的发展如此之快用日新月异来形容也不为过,而目前国内对jenkins pipeline关注的人还非常少,相关的文章更是稀少,唯一看到w3c有篇相关的估计是直 ...
- 使用Jenkins可持续集成maven项目
首先下载最新的Jenkins的war包,放在tomcat的webapps的目录下,然后运行,例如: http://121.42.62.45:8080/jenkins/ 然后按照一步步的提示,下载相关的 ...
- 在Kubernetes集群里安装微服务DevOps平台fabric8
转载于https://blog.csdn.net/wzp1986/article/details/72128063?utm_source=itdadao&utm_medium=referral ...
- Jenkins + SVN搭建php持续集成
目标需求 开发提交代码到SVN,jenkins在分发服务器上执行'svn update',分发服务器在把代码同步到webserver,实现持续集成 流程 配置jenkins 一.jenkins所需插件 ...
- 【有容云案例系列】基于Jenkins和Kubernetes的CI工作流
嘉宾介绍 黄文俊 有容云资深系统架构师 主要负责容器云平台产品架构及设计. 8年工作经验, 有着企业级存储, 云计算解决方案相关理解. 关注于微服务设计思考, 开发流程优化, docker及kuber ...
- centos7.6环境jenkins升级到tomcat8.0.53和jenkins2.168版本
Jenkins服务器:192.168.10.175数据备份服务器:192.168.10.164 jenkins服务器报错不能访问,插件无法加载就不能正常获取代码,重启尝试解决无果,于是采用 如下方案: ...
- DEVOPS技术实践_06:sonar与Jenksin集成
代码质量管理平台 一.checkout和打包功能 1.1 gitlab在新建一个文件 后续在写入内容 1.2 Jenkins新建一个任务 两个参数 1.3 流水线配置 copy仓库地址: http:/ ...
- mac通过docker一键部署Jenkins
目录 mac通过docker一键部署Jenkins 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.下载脚本 1.2.安装程序 1.2.1.安装程序详情 1 ...
随机推荐
- 菜鸡的Java笔记 第二十五 wrapperClass 包装类
wrapperClass 包装类 1.包装类的特点 2.装箱与拆箱操作 3.数据转型处理 内容 Object 类可以接收 ...
- 记一次 IIS 站点配置文件备份和还原,物理路径文件批量备份
前言 上一篇文章实现了数据库的批量备份和还原,当然部署在服务器中的IIS站点备份也是一个十分繁琐的事,三四个数量不多的还好,像有一些服务器用了许久,承载几十个站点甚至更多,一个一个备份,再一个一个还原 ...
- [hdu6595]Everything Is Generated In Equal Probability
计算一对逆序对的贡献,即在n个数期望要删多少步才能删掉其中的两个数,设f(n)表示此时的期望,则有方程$f[n]=3/4+(\sum_{i=2}^{n}f[i]\cdot c(n-2,i-2))/2^ ...
- 深度剖析Spring Boot自动装配机制实现原理
在前面的分析中,Spring Framework一直在致力于解决一个问题,就是如何让bean的管理变得更简单,如何让开发者尽可能的少关注一些基础化的bean的配置,从而实现自动装配.所以,所谓的自动装 ...
- 『学了就忘』Linux用户管理 — 51、用户管理相关命令
目录 1.添加用户(useradd命令) 2.设定密码(passwd命令) 3.用户信息修改(usermod命令) 4.删除用户(userdel命令) 5.切换用户身份(su命令) 1.添加用户(us ...
- Python之用型号构成一个三角形代码
#coding=utf-8 #******直角三角形*********** #左下角三角形 for i in range(1,6): print '*'*i print "=&quo ...
- C#使用Thrift作为RPC框架实战(四)之TSocket
前言 在前几个小节中我们讲了Thrift框架的基本概念以及重要的名称空间,接下来的几个小节,我们将站在实战的角度来深入讲解一些Thrift的重要类型.本小节我先要讲一下Thrift框架支持TCP通信的 ...
- 学Web前端开发,选择培训学校是关键--青岛思途
互联网+的提出,催生了Web前端开发行业更大的就业空间,其行业热度也正呈爆炸式增长.专业人才供不应求导致了从业者薪资的居高不下,一般来说Web前端工程师的年薪可达15w以上,工作3~5年后通常可达到1 ...
- CF30E. Tricky and Clever Password
被你谷翻译诈骗了兄弟. 不过下次可以拿去诈骗其他人. 考虑枚举B,显然结论有B作为回文串越长越好,这个可以使用manacher,或者直接二分hash. 然后考虑翻转末尾串,然后记录其匹配到第 \(i\ ...
- FJOI2020 的两道组合计数题
最近细品了 FJOI2020 的两道计数题,感觉抛开数据范围不清还卡常不谈里面的组合计数技巧还是挺不错的.由于这两道题都基于卡特兰数的拓展,所以我们把它们一并研究掉. 首先是 D1T3 ,先给出简要题 ...