Jenkins(11):Jenkins的自动化构建实例
常见的triggers
- build periodically
设定类似cron周期性时间触发构建
- poll SCM
设定类似cron周期性时间触发检查代码变化,只有代码变动时才触发构建
- Hooks
用过SVN的都知道,钩子嘛。。。
Github hooks
Gitlab hooks
- Events
Gerrit event
build periodically
H 代表jenkins 自己分配时间,不去指定客观时间。一般都是Jenkins根据监控资源利用率,算法分配的。
* * * * *
(五颗星,中间用空格隔开)
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
1.每30分钟构建一次:
H/30 * * * *
2.每2个小时构建一次
H H/2 * * *
3.每天早上8点构建一次
0 8 * * *
4.每天的8点,12点,22点,一天构建3次
0 8,12,22 * * *
(多个时间点,中间用逗号隔开)
Poll SCM
1.Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作
2.如果我想每隔30分钟检查一次源码变化,有变化就执行
自动化代码构建实例
- 在之前的freestyle任务基础之上实现构建
- 检查maven 环境
- 构建命令 mvn clean compile、mvn package
- 归档构建产物
- 演练参数的
- 通过配置triggers进行自动化构建
- 多并发任务场景和规则
测试项目代码
首先构建好了 gitlab,测试项目准备好,测试项目找了半天。上传到百度云了,分享一下,感谢原作者。
演示项目来自于:
链接: https://pan.baidu.com/s/12MTYhVZ3NJP3F5nIPCcDyA 提取码: 2myy
徐小平
我的书《Maven实战》
我是本地上传的项目
创建一个issue
创建分支
安装maven
软件下载
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
安装
tar vxf apache-maven-3.2.3-bin.tar.gz
sudo mv apache-maven-3.2.3 /usr/local/maven
修改环境变量
在/etc/profile中添加以下几行
MAVEN_HOME=/usr/local/maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile使环境变量生效。
配置构建
我是在master构建的,个人认为这种操作不应该影响线上环境,也不应该放到线上机器上,万一呢。。。
source /etc/profile
pwd
mvn -v
mvn clean compile
#有一个mail模块是系统级别的
sudo /usr/local/maven/bin/mvn package
#完成后 修改一下权限,否则下一次麻烦
sudo chown -R jenkins: .
sudo 配置一下,这是Jenkins安装方式RPM不如war好的地方,tomcat+war完全可以用一个业务账户,权限把握的更好,而Jenkins账户要提权是真的不安全。
jenkins ALL=(ALL) NOPASSWD:ALL
可能遇到的问题
我因为之前安装gitlab起了postfix,结果项目报错了。
sudo systemctl stop postfix
构建后归档