1.创建并初始化jenkins项目
1.1 首先创建gitlab项目,并在项目中新建jenkinsfile文件,文件内容参考https://www.jenkins.io/doc/book/pipeline/
1.2 进入jenkins,新建一个job,job类型位流水线,开始配置
1.2.1 构建触发器选择Build when a change is pushed to GitLab. GitLab webhook ,点击该栏目下的高级选项,生成secret token 用于配置gitlab的webhook.
1.2.2 进入gitlab 进入settings下的webhook,把刚才的url和token复制进去,并创建webhook即可
1.2.3 进入jenkins继续配置流水线的参数,首先定义下选择scm,然后选择git,将项目的gitlab地址和用户名密码写入
branch to build 表示用于从哪个分支去获取jenkinsfile,比如/master表示构建的时候从主干拉取jenkinsfile,如果是/*表示从当前分支拉取jenkinsfile
脚本路径,路径为项目中jenkinsfile的相对路径。
配置完成后最简单的项目就可以完成了,可以点击立即构建查看是否成功
2.参数化构建
首先进入jenkins配置,在job Notifications选择参数化构建,常选择字符参数和git参数
git参数:参数类型选择分支,默认值为origin/master
这样参数化就配置好了,在jenkinsfile中使用就类似与shell脚本的环境变量,比如你在jenkins中写了一个字符参数变量名为test,在jenkinsfile中想要使用就是"$test",记得采用双引号,因为在shell脚本中单引号所见即所得,双引号会进行编译后赋值
3.jenkinsfile的语法
3.1在pipline.stages.stage.step,想执行一段shell指令使用sh "shell命令" 可以是单引号,双引号三引号包裹shell命令,在windows则需要使用bat "windows指令"
支持超时重试,比如
step{
retry(3){
sh "shell指令" //表示shell指令执行失败后会重试三次
}
timeout(time:3,unit:'minutes/seconds/hours'){
sh "shell指令" //表示当前指令超时时间为3分钟或者3秒钟或者3小时
}
//这两个指令可以组合使用,参考文档
}
pipline运行完成后需要根据结果做相应的操作
post {
always {
echo 'This will always run'
}
success {
echo 'This will run only if successful'
}
failure {
echo 'This will run only if failed'
}
unstable {
echo 'This will run only if the run was marked as unstable'
}
changed {
echo 'This will run only if the state of the Pipeline has changed'
echo 'For example, if the Pipeline was previously failing but is now successful'
}
}