基于iPipeline框架的流水线开发--入门级

1.基础框架
2.系统配置
3.Pipeline语法
Pipeline遵循着Groovy的基本语法,相比Java而言,Groovy语法有如下的一些特性:

  • 没有分号作为语句分隔符,每个声明必须在自己的一行
  • return关键字可省略, 方法的最后一句表达式可作为返回值返回 (视具体情况使用, 避免降低可读性)
  • 类的默认作用域是public
  • def关键字定义的变量类型都是Object, 任何变量, 方法都能用def定义/声明 , 在 Groovy 中 “一切都是对象 "

3.1定义方法

/**
 * 描述:截取字符串中的数字
 * 返回:
 * */
def getNumber(str){
    if("" != str){
        def regEx="[^0-9]"
        def p = java.util.regex.Pattern.compile(regEx)
        def m = p.matcher(str)
        def result_num = m.replaceAll("").trim()
        echo "result_num is ${result_num}"
        return result_num
    }else{
        echo "input string is null"
    }
}

3.2定义变量
Groovy遵循“一切皆对象”的思路,下面为了方便大家理解,可能会出现以字符串、数组、Map等Java中的变量类型给大家介绍
环境变量

def gerrit_project="${GERRIT_PROJECT}"

其他环境变量见:[https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables]
局部变量
申明变量:def username
初始化变量:def username="alex"
3.3字符串的定义与使用
最常用的是用双引号初始化字符串,双引号里的内容可扩展

def sum = "the sum of 2 and 3 equals ${2 + 3}"

单引号定义的字符串内容不可扩展,类似于Java中的String

def username = 'alex'

还有一种特殊的方式,三个双引号定义的字符串,三个单引号定义的是有格式的字符串,会直接按照我们写的格式进行输出,而不用像java中进行拼接

def trebleStr = '''line one
            line two
line three '''

获取子字符串:

def level1_project = "${GERRIT_PROJECT}".substring(0, "${GERRIT_PROJECT}".lastIndexOf("/"))

字符串替换:

def UserName = readFile encoding: 'UTF-8', file: 'whoami.txt'
UserName = UserName.replaceAll("\n","").replaceAll(" ","")

大小写转换:

def username = "alex".toUpperCase()
def realname = "ALEX".toLowerCase()

字符串连接

def imageTag="${imageVersion}"+"_"+"${now}"

3.4数组和对象的使用
通过index获取数组中的元素

line_cover_rate=jacoco_result.split(",")[0]

通过key获取map中的value

def  magic_value = sonarResult['magic_value']

3.5逻辑控制
if/else,和java中的用法基本一致

 if (!sonar_status){
	error "Sonar质量门没通过"
 } else {
	echo "通过质量门"
 }

for循环

def sum = 0
for (i in 0..9) {
    sum += i
}

while循环,和java用法基本一致

def sum = 0
while(sum<10){
    println sum++
}

3.6时间函数

Date start = new Date()
def createTime = start.format('yyyy-MM-dd HH:mm:ss')
def start_time = start.getTime()

4.应用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值