1、jenkins job介绍
--代表一个任务或者项目
--可配置与可执行
--执行后的记录称之为Build
--日志监控与记录
--所有文件集中保存
2、Jenkins Freestyle与Pipeline Job区别
1)Freestyle Job:
1.需在页面添加模块配置项与参数完成配置;
2.每个Job仅能实现一个开发功能;
3.无法将配置代码化,不利于Job配置迁移与版本控制;
4.逻辑相对简单,无需额外学习成本;
2)Pipeline Job:
匹配持续集成与持续交付的概念
1.所有模块,参数配置都可以体现为一个pipeline脚本
2.可以定义多个stage构建一个管道工作集
3.所有配置代码化,方便Job配置迁移与版本控制,
4.需要pipeline脚本语法基础
3、jenkins job环境准备
1.配置Jenkins server本地Gitlab DNS
pass
2.安装git client,curl工具依赖
pass
3.关闭系统Git http.sslVerify安全认证
pass
4.添加Jenkins后台Git client user与email
5.添加Jenkins后台Git Credential凭据
这里的用户名和密码是gitlab的,后面配置会用到;
4、Jenkins freestyle Job构建配置
1.创建一个Freestyle project
2.编辑描述信息
3.参数
选项参数:
文本参数:
4.源代码管理
需要在manage jenkins—>Global Tool Configuration—>Git 里配置git命令的路径;
我这里由于https的方式一直报错,解决不掉,就直接把gitlab的配置换成http了:
[root@gitlab ssl]# vim /etc/gitlab/gitlab.rb external_url 'http://gitlab.example.com' #29行,这里的https换成http #nginx['redirect_http_to_https'] = true #注释此行 #nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt" #注释此行 #nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key" #注释此行 #nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem #注释此行 [root@gitlab ssl]# gitlab-ctl reconfigure [root@gitlab ssl]# gitlab-ctl restart
5.Build配置
然后:应用—>保存
5、Jenkins pipline Job构建配置
1)Jenkins Pipeline Job编写规范
2)pipline job构建配置
(1)新建任务
(2)添加描述信息
(3)Pipeline脚本配置
脚本内容:
credentialsId:"deeba975-e535-402b-b2e6-f9d7104389c7" 是凭据里面的”唯一标识“字段;
#!groovy pipeline { agent {node {label 'master'}} environment { PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" } parameters { choice( choices: 'dev prod', description: 'choose deploy environment', name: 'deploy_env' ) string (name: 'version', defaultValue: '1.0.0', description: 'build version') } stages { stage("Checkout test repo") { steps{ sh 'git config --global http.sslVerify false' dir ("${env.WORKSPACE}") { git branch: 'master', credentialsId:"deeba975-e535-402b-b2e6-f9d7104389c7", url: 'http://root@gitlab.example.com/root/test-repo.git' } } } stage("Print env variable") { steps { dir ("${env.WORKSPACE}") { sh """ echo "[INFO] Print env variable" echo "Current deployment environment is $deploy_env" >> test.properties echo "The build is $version" >> test.properties echo "[INFO] Done..." """ } } } stage("Check test properties") { steps{ dir ("${env.WORKSPACE}") { sh """ echo "[INFO] Check test properties" if [ -s test.properties ] then cat test.properties echo "[INFO] Done..." else echo "test.properties is empty" fi """ echo "[INFO] Build finished..." } } } } }
应用,保存;
(4)执行
上面的步骤执行后应该会出现错误:
查看过错误后,再返回任务界面:
添加参数,再次构建:
这次就会成功了: