[TOC]
管理员控制Jenkins
重启,关机,退出
登录后,根路由输入
http://localhost:8080/restart
http://localhost:8080/reload
http://localhost:8080/exit
定时任务
Build periodically
定时触发构建任务,不管远程代码分支上的代码是否发生变化,都执行一次构建
H 2 * * *
每天两点定时执行构建
Build periodicallySchedule 参数说明
# 参数格式
* * * * *
# 每天1点开始依次构建
H 1 * * *
# 每个小时的第 0 分钟执行一次构建
0 * * * *
# 每周一到五,当天3点开始依次构建
H 3 * * 1-5
- 第一个参数代表的是分钟 minute,取值 0~59;
- 第二个参数代表的是小时 hour,取值 0~23;
- 第三个参数代表的是天 day,取值 1~31;
- 第四个参数代表的是月 month,取值 1~12;
- 最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
Poll SCM
定时感知代码分支是否有变化,如果有变化的话,执行一次构建
H/10 * * * *
每十分钟去检查一下远程仓库,看代码是否发生变化
curl
官网的wiki:https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
curl -X POST JENKINS_URL/job/JOB_NAME/build \
--user USER:TOKEN \
--data-urlencode json='{"parameter": [{"name":"id", "value":"123"}, {"name":"verbosity", "value":"high"}]}'
Python-Jenkins
几乎涵盖了大部分Jenkins的操作
Python-Jenkins官网:https://pypi.python.org/pypi/python-jenkins/
Python-Jenkins Doc:http://python-jenkins.readthedocs.io/en/latest/index.html
install python-jenkins
pip install python-jenkins
Use Python-Jenkins
import jenkins
#定义远程的jenkins job
job_name='job'
#定义远程的jenkins master server的url,以及port
jenkins_server_url='xxxx:xxxx'
#定义用户的User Id 和 API Token
user_id='xxxx'
api_token='xxxx'
#实例化jenkins对象,连接远程的jenkins master server
server=jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)
#构建job名为job_name的job(不带构建参数)
server.build_job(job_name)
#String参数化构建job名为job_name的job, 参数param_dict为字典形式,如:param_dict= {"param1":“value1”, “param2”:“value2”}
server.build_job(job_name, parameters=param_dict)
#获取job名为job_name的job的相关信息
server.get_job_info(job_name)
#获取job名为job_name的job的最后次构建号
server.get_job_info(job_name)['lastBuild']['number']
#获取job名为job_name的job的某次构建的执行结果状态
server.get_build_info(job_name,build_number)['result']
#判断job名为job_name的job的某次构建是否还在构建中
server.get_build_info(job_name,build_number)['building']
配置任务流 Pipeline
引用: https://my.oschina.net/ghm7753/blog/371954?p=1
插件安装 Build Pipeline Plugin
如果要手动安装需要下载如下
- Javadoc Plugin
- Maven Integration plugin
- Token Macro Plugin
- Ant Plugin
- PAM Authentication plugin
- LDAP Plugin
- External Monitor Job Type Plugin
- Run Condition Plugin
- Conditional BuildStep
- Parameterized Trigger plugin
- jQuery plugin
- Build Pipeline Plugin
使用pipeline
在jenkins主页点击新建视图
选择
Build Pipeline View
创建完成后对它进行一些配置,关键配置内容为
Select Initial Job
作为初始Job关联多个Job
真实的工作环境有很多job,比如
编译,然后执行静态代码检查、单元测试、然后部署服务器、服务器重启、进行ui测试等
需要对这些job进行一些设置将它们的上下游关系配置好
例如初始job是Check-Env
,可以先对它进行设置。
进入该job的配置页面,然后选择构建后操作
接着选择Trigger parameterized build on other projects
Project to build
栏填入它下游的job可以是一个也可以是多个,多个使用,
分隔开
需要注意的是,如果下游的job构建时不需要参数的话,必须将
Tigger build without parameter
勾上,否则不会自动执行下游的任务了。如果有参数的话,将具体的参数名称以及值填入Add parameter
中
Tigger when build is
可以填入Stable
警告 Job 千万别设置成一个环路
需要注意的是各个任务间千万别设置成一个环路,例如job1的下游项目设置成job3,而job3的下游项目又设置成job1
如果这样设置了,那整个jenkins就挂了,即便重启也没有用
要解决的话只能去jenkins的workspace
目录将设置成环路的job删除
然后重启jenkins
pipeline视图
查看各个job的执行情况
- 绿色是表示执行通过的
- 黄色是正在执行的
- 蓝色是未执行的
- 红色是执行失败的