jenkins实例配置python项目的单元测试
1、jenkins首页->新建任务
2、输入 任务名称并选择任务类型,我这里选择自由风格的软件项目
3、配置【General】:
4、配置【源码管理】:选择源码管理工具【Git】,【Repository URL】为git上的源码地址,选择git@gitee.com:******/screws.git,【Credentials】提供凭据,git服务器上配置好的ssh-key,具体配置请查看git相关教程,Branches选择代码分支 (如果是SVN也一样,安装SVN插件后这里就能进行配置)
5、配置【构建触发器】:设置什么时候进行构建
- 触发远程构建 (例如,使用脚本):这里使用于自动化构建,拼接url后写入代码中可以实现在脚本或者工具执行构建
- 其他工程构建后触发:当本job依赖的其他job被build时,执行本job
- 定时构建:定时执行构建任务,不管远程代码分支上的代码是否发生变化,都会执行一次构建:H H/1 * * *表示每隔一个小时构建一次
- 轮询 SCM:设置定时检查代码仓库是否有变更,有变更则构建:H/5 * * * * 表示每隔五分钟去检查一遍代码仓库,如果代码发生变化则执行构建,否则不构建
定时构建与轮询构建格式:* * * * *
- 第一颗*表示分钟:取值0-59,第几分钟执行
- 第二颗*表示小时:取值0-23,第几小时执行
- 第三颗*表示日:取值1-31,第几日执行
- 第四颗*表示月:取值1-12,第几月执行
- 第五颗*表示星期:取值0-7,每周第几天执行
例如:H/5 * * * * 表示每隔五分钟执行一次
H H/1 * * * 表示每隔一个小时执行一次
H 2 * * * 表示每天2点进行构建
H H 15 * * 表示每个月15号执行
H 9 * * 1-5 表示星期一到星期5,每天上午9点整执行
H/30 9-20 * * 1-5 表示星期一到星期5,每天上午9点到晚上八点,每隔30分钟执行
6、【构建环境】:主要是构建操作前的环境清理
7、【构建】:点击添加构建步骤,主要用于设置需要构建执行的内容:一般构建过程包括拉取版本管理工具(SCM)中的代码并编译、测试、打包、部署发布等工作,具体操作看项目要求,我这里只是对python代码进行单元测试,所以只是执行单元测试脚本即可
#!/bin/bash
#定义变量
MY_PYTHON=/root/anaconda3/envs/drr/bin #python路径
SOURCE_DIR=/var/lib/jenkins/workspace/AutoScrew/python_tests/segmentation_part #单元测试代码路径
#切换anaconda环境
sudo /bin/bash -c 'source /root/anaconda3/bin/activate drr'
cd ${SOURCE_DIR}
#echo "++执行单元测试++"
sudo ${MY_PYTHON}/python -m pytest --cov --cov-report=html:./${JOB_NAME}_${BUILD_NUMBER} --junit-xml=./${JOB_NAME}_${BUILD_NUMBER}/results.xml --html=./${JOB_NAME}_${BUILD_NUMBER}/results.html --verbose --capture=tee-sys ${SOURCE_DIR}
下面这个是为了解决html报告样式显示不了添加的
8、【构建后操作】:执行完构建里面的内容后的操作,一般包括报告生成、归档、邮件发送等内容,具体看项目要求
生成报告:
邮件通知: