Jenkins Job常用配置
文章目录一、保留历史构建Discard old builds`传统方法``脚本式``声明式`二、定时构建`传统方法``脚本式``声明式`三、清理工作空间`传统方法``脚本式``声明式`四、触发下游job构建`传统方法``脚本式``声明式`一、保留历史构建Discard old builds传统方法脚本式暂未找到声明式options {buildDiscarder logRotator(artifa
文章目录
一、保留历史构建Discard old builds
传统方法
脚本式
properties([
buildDiscarder(logRotator(numToKeepStr:'30')),
])
声明式
options {
buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '30') //保留历史构建数30个
}
二、定时构建
每隔30分钟去轮询git仓库,如果有变更则触发流水线执行
传统方法
脚本式
properties([
pipelineTriggers ([pollSCM("H/30 * * * *")])
])
声明式
暂未找到
三、清理工作空间
传统方法
Build Environment
脚本式
step([$class: 'WsCleanup']) //清理工作空间
deleteDir() //递归清理工作空间
声明式
deleteDir() //递归清理工作空间
四、触发下游job构建
传统方法
Tragger parameterized build on other projects
脚本式
wait:是否等待下游job构建完成。默认为true
propagate:继承下游job的构建状态,如果下游job报错,则自己也报错
build(job: '下游job名', parameters: [string(name: 'VERSION', value: env.VERSION)], propagate: true, wait: true)
声明式
上游Job需有VERSION参数
JOB_NAME是Jenkins内置变量,代表当前Job的名字
下游job需有JOB参数
build job: '下游job名字', parameters: [string(name: 'VERSION', value: env.VERSION),string(name: 'JOB', value: env.JOB_NAME)], propagate: true, wait: true
五、指定执行机
传统方法
slave_1为执行机的名字
脚本式
node(slave_1){
println "xxxx"
}
声明式
pipeline {
agent slave_1
}
六、执行shell命令
传统方法
脚本式
- 获取groovy定义的变量——${key}
- 获取shell变量——${key} #需要通过\进行转义
sh """
shell命令
"""
声明式
- 获取shell变量——${key}
- 不能获取groovy通过def定义的变量
- 可以获取参数化定义的值
- shell自身定义的变量会覆盖jenkins参数化定义的变量
sh '''
shell命令
'''
七、编写Description描述信息
传统方法
八、给job构建号设置描述信息
在这里插入图片描述
需安装Build Name and Description Setter插件
声明式
script {
buildDescription "123"
}
脚本式
buildDescription("123")
九、upstream—在其他项目构建后构建
properties([
pipelineTriggers([
upstream(
threshold : hudson.model.Result.SUCCESS,
upstreamProjects: 'job1,job2'
)
])
])
如果你需要列出多个任务,可以使用逗号分隔。
如果你需要指定一个任务的某个分支(如多分支任务),在任务名称的后面添加斜线和分支名称(如’ Job1/master )。
十、周期性构建
周一到周五上午9点运行
传统方法
声明式
triggers { cron(0 9 * * 1-5) }
脚本式
properties([
pipelineTriggers([
cron(0 9 * * 1-5)
])
])
cron
语法
各字段的含义参考Linux的定时任务,需要注意的是,这里可以使用H符号。
H符号表示在一个范围内,使用该项目名称的散列值计算出一个唯一的偏移量。
这个偏移量与范围的最小值相加后,用于定义范围内的实际执行时间。
这个符号可以避免所有配置相同 cron 值的项目在同一时间启动。从散列算法获得的偏移 ,用于错开执行具有相同 cron 时间的项目
这个值是项目名称的散列值,每 个值都与其他项目的值是不同的,但是同一项目的值随着时间的流逝则保持不变。
上面的定时用H符号表示可以写成
cron(H 9 * * 1-5) //周一到周五上午9点的某一分钟运行
十一、SCM轮询
每30分钟轮询一次
传统方法
声明式
triggers { pollSCM(H/30 * * * *) }
脚本式
properties([pipelineTriggers ([pollSCM(H/30 * * * *)])])
十二、sshPublisher传送文件到远程机器
发送backend/app.jar到远程机器java_161(这个需要在Jenkins的系统配置中设置)的/opt下,并执行如下命令
source /etc/profile
java -jar app.jar &
声明式
sshPublisher(publishers: [sshPublisherDesc(configName: 'java_161', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
source /etc/profile
java -jar app.jar &
''',
execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/opt/',
remoteDirectorySDF: false, removePrefix: 'backend/', sourceFiles: 'backend/app.jar')],
usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
更多推荐
所有评论(0)