jenkins+python持续集成

本文介绍如何使用Jenkins进行自动化持续集成(CI),包括安装步骤、配置必要的插件如Git Plugin、Python Plugin及Violations等,并详细展示了如何配置job来实现自动化构建、测试和代码质量检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前写过一文,用buildbot做CI,试试发现不给力,还是jenkins好。每次给测试搭环境,重复体力,写个文章,丢给测试,自个对着玩去

1.安装

搜索jenkins,进入官网,5分钟以内相信你能找到适合你操作系统的安装步骤。此处为省事,列出centos步骤(注意安装稳定版)

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
如果你系统里没有Java,那么sudo yum install java
启停service jenkins start/stop/restart
或者systemctl start/stop/restart jenkins

不要问service start xxx和systemctl(centos7引入)啥关系,后者是用来替代前者的。具体问百度。启动后,验证安装是否成功,浏览器访问http://localhost:8080/,看到老爷爷(jenkins logo)就行。

要是遇到奇葩问题,看这里 https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions

2.配置

  • 配置前安装必要插件:

    Git Plugin:使用Git作为源代码管理

    Python Plugin:Adds the ability to execute python scripts as build steps.

    Violations:代码质量检测,支持pylint、jslint等

  • 配置job

    1.新建-->job-->自由风格

    2.填写git 地址,触发器选择Poll SCM, Schedule可选

    3.填写脚本:第二行#!/usr/bin/bash/...是给jenkins看的,让jenkins不要输出每条命令

     #!/usr/bin/bash
     #!/usr/bin/bash/...
     source /home/luodaihong/py27/bin/activate
     cd /home/luodaihong/workspace/django-privilege/example
     coverage run  --source=privilege  manage.py test privilege
     coverage report -m --skip-covered
     pylint --output-format=parseable privilege > pylint.xml || exit 0
    

    coverage pylint自己安装咯

    4.增加构建后操作步骤-->Report Violations--> pylint后填写pylint.xml --->Faux Project Path填写实际工程路径,也就是脚本中cd的路径

3.简单使用

建好工程后,构建一次玩玩呗,点击构建详情,等待构建完毕,看到代码风格统计图, Console Output里看到单元测试通过情况,代码覆盖情况。遇到问题:

  • 初始安装后基本都能运行jenkin并看到jenkins web页面,否则重装。修修改改后进程起不来,多看看权限问题,特别是修改jenkins_user

  • 配置的job怎么都不按预期执行,先手动命令行执行,确认无误后查看jenkins环境变量

### 使用 JenkinsPython 实现持续集成测试 #### 集成测试概述 集成测试是指验证多个模块组合在一起后的功能是否正常工作。对于Python应用程序而言,这通常涉及确保各个组件之间的交互按预期运行[^1]。 #### 工具选择 为了实现高效可靠的CI/CD流程,在此推荐使用Pytest作为主要的测试框架,它支持多种插件来增强其能力,比如参数化测试、并行执行等功能;而Jenkins则是一个流行的开源自动化服务器,非常适合用来管理构建过程中的不同阶段,包括但不限于代码检入触发器设置、环境准备以及实际的测试执行等操作[^3]。 #### 构建 Jenkins Pipeline 下面展示了一个简单的声明式pipeline脚本例子,该脚本定义了如何在一个基于Linux系统的环境中配置Python应用项目的自动化工序: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/user/repo.git' } } stage('Setup Environment') { steps { sh ''' python3 -m venv myvenv source myvenv/bin/activate pip install --upgrade pip setuptools wheel pip install -r requirements.txt ''' } } stage('Run Tests') { steps { sh ''' pytest tests/ ''' } } // 可选:部署或其他后续动作... } post { always { junit 'tests/results/*.xml' // 假设pytest已配置为生成JUnit XML报告文件 cleanWs() // 清理workspace保持干净整洁的工作区 } } } ``` 上述Groovy脚本展示了怎样利用Git拉取源码仓库的内容,并创建虚拟环境安装依赖项之后再调用`pytest`命令来进行全面的测试覆盖。此外还包含了清理工作空间的动作以维持良好的卫生习惯[^2]。 #### Pytest 的 JUnit 报告格式 为了让Jenkins更好地理解和处理来自Pytest的结果数据,建议启用相应的选项让后者输出兼容于前者理解的标准XML格式文档。可以通过向命令行添加如下参数完成这项任务:`--junitxml=results/test-report.xml`。 #### 安全性和性能考虑 当涉及到敏感信息(如API密钥)时,请务必采用安全的方式存储这些凭证而不是硬编码到版本控制系统里去。可以借助像Vault这样的专用服务或者直接运用平台自带的功能(例如GitHub Secrets)。另外值得注意的是要优化整个流水线的速度表现,尽可能缩短反馈周期从而加快开发迭代速率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值