前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >pipeline groovy

pipeline groovy

原创
作者头像
陈不成i
修改2021-06-02 17:53:07
修改2021-06-02 17:53:07
1.6K00
代码可运行
举报
文章被收录于专栏:ops技术分享ops技术分享
运行总次数:0
代码可运行

一.变量

1.直接定义

代码语言:javascript
代码运行次数:0
复制
def x="abc"

2.从脚本执行结果赋值变量 branch = “/jen_script/return-branch.sh $group $job”.execute().text

#将结果通过逗号分隔,写入数组里 branch = “one, two, three” branch_list = branch[1..-2].tokenize(‘,’)

  1. 3.引号
  2. ```python
  3. def x="abc"
  4. print '${x}' //输出${x},不支持变量
  5. print "${x}" //输出abc,支持变量
  6. print ''' //输出${X},不支持变量
  7. ${X}
  8. '''
  9. print """ //输出abc,支持变量
  10. ${X}
  11. """

二.流程判断

1.判断变量

  1. if (x='abc') {
  2. echo "abc"
  3. } else (x='bcd') {
  4. echo "bcd"
  5. }

三.方法

1.定义方法并调用

  1. /String是声明这个变量应该类型是字符串,可以省略,类型则根据传入类型而变
  2. def createName(String givenName, String familyName){
  3. return givenName + "" + familyName
  4. }
  5. //调用,可省略括号
  6. createName(familyName = "Lee", givenName = "Bruce")

2.方法添加默认参数

  1. def sayHello(String name = "zhangsan"){
  2. print "hello ${name}"
  3. }
  4. //不传参时括号不能省略了
  5. sayHello()

3.闭包

  1. //定义闭包
  2. def codeBlock = {print "hello closure"}
  3. //闭包还可以直接当成函数调用
  4. codeBlock() //输出hello closure

4.闭包作为参数传递给另一个方法

  1. //定义闭包
  2. def codeBlock = {print "hello closure"}
  3. //定义一个方法,它接收一个闭包参数
  4. def sayHello(closure) {
  5. closure()
  6. }
  7. //在调用sayHello方法时可以这样
  8. sayHello(codeBlock)
  9. //如果把闭包定义的语句去掉
  10. sayHello( {print "hello closure"} )
  11. //由于括号是非必需的,所以
  12. sayHello {
  13. print "hello closure"
  14. }
  15. //如果sayHello改成名字为pipeine就是,是不是很像jenkins的pipeline
  16. pipeline {
  17. print "hello closure"
  18. }

5.闭包另类用法,定义一个stage方法

  1. //定义方法,传一个正常变量和一个闭包
  2. def stage(String name, closue) {
  3. print name
  4. closue()
  5. }
  6. //在正常情况下,这样使用stage函数
  7. stage("stage name", {print "closure"})
  8. //执行打印
  9. //stage name
  10. //closure
  11. //可以用另一种写法
  12. stage("stage name") {
  13. print "closure"
  14. }

四.数组

1.定义数组,然后判断是否在数组中。比如判断two是否在one这个数组里,需要先定义字符串,后面切割。

  1. ipeline {
  2. agent any
  3. environment {
  4. one = "xxx,ddd,lll"
  5. two = "ddd"
  6. }
  7. stages {
  8. stage('pull') {
  9. steps {
  10. script {
  11. list = one.split(',')
  12. for ( i in list ) {
  13. echo "$i"
  14. echo "$two"
  15. if (i == two) {
  16. echo "ok two"
  17. } else {
  18. echo "no two"
  19. }
  20. }
  21. }
  22. }
  23. }
  24. }
  25. }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.变量
  • 二.流程判断
  • 三.方法
  • 四.数组
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档