python-code-check
实现一个基于jenkins + Pylint的代码检查工具. 主要有如下特点:
在jenkins代码检查上包装了一层, 简化了一些繁琐操作(创建credentials、配置job),使的接入代码检查很简单.
存储jenkins每一次代码检查结果,可以更好地分析代码质量,推动代码改进.
代码告警通知, 及时发现代码问题.
总之,一切是为了改进代码质量.
使用简介
首页
会显示当前最新的检查结果. 中间的天气图标表示这代码的健康程度,是根据设置的告警阀值来显示的.点击详细:
点击代码趋势这一块会跳转到jenkins对每个文件检查的详细信息:
然后就可以根据pylint的检查结果进行代码改进.
创建一个待检查的任务
创建一个待检查的任务特别简单, 点击新建按钮. 说一下各个字段含义:
字段名
含义
svn
jenkins上任务源码管理里配置的代码分支
username
svn账号
password
svn密码
任务名
jenkins job名称
通知
接受代码告警的人列表
告警阀值
当代码告警数超过阀值就会邮件告警
创建好后,也可以点击任务名进行编辑.
Jenkins设置
使用docker方式启动一个jenkins, 或者手动下载.
镜像构建
cd jenkins&&docker build -t jenkins:pylint .
docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins:pylint
插件
国内网络慢,可以手动安装将各个插件拷贝到/var/jenkins_home/plugins,然后再界面上安装.
Credentials Plugin
Violations plugin
Subversion Plug-in
其他设置:
Configure Global Security-->CSRF Protection取消打钩
Configure Global Security--> 访问控制-->授权策略-->登录用户可以做任何事--> Allow anonymouse read access
**注意: 如果安装的一些pip包依赖于操作系统,可以现在jenkins上安装. **
接入检查项目设置
检查时需要有代码引用包的环境,所以需要在项目根目录(界面上svn填写地址对应的目录)增加一个requirements.txt和pylint.cfg文件.
其中pylint.cfg里需要修改一下init-hook=这句为:
init-hook= 'import sys; sys.path.append("/var/lib/jenkins/workspace/job_name")'
pylint.cfg使用pylint --generate-rcfile > pylint.cfg生成
代码部署
修改docker-compose.yml里environment:
DB_HOST=10.5.2.5
DB_PORT=33066
DB_NAME=pylinter
DB_USER=root
DB_PASSWORD=!@#$ESZAQ
DEFAULT_FROM_EMAIL = '528194763@qq.com'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '528194763'
EMAIL_HOST_PASSWORD = 'vfyaasivgfjgbigc'
JENKINS_USER=admin
JENKINS_TOKEN=b81bba48120b4441d8af54b485f690b9
修改front\src\components\views\Dashboard.vue和 front\src\components\views\job.vue 里url指向服务器地址
根据实际去修改对应的变量.
执行命令
docker-compose build && docker-compose up
创建定时任务
docker exec -it pythoncodecheck_web_1 python manage.py init_data
说明
web界面现在未提供删除功能,可以创建一个django管理员账号,登陆到admin页面就行删除操作.