Jenkins+Github持续集成

本文详细介绍如何通过配置Jenkins与Github实现自动化构建的过程。包括使用Ngrok进行内网穿透,配置Jenkins监听Github的Post请求,以及如何设置Github WebHook以触发Jenkins构建等关键步骤。

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

配置前要求:

1.Jenkins已经安装Github插件

2.Jenkins服务器已经拥有一个公网IP地址,由于我是本地搭建的,所以我用Ngrok实现内网穿透。


(一)、全局配置


先配置Github连接的一些信息,打开Jenkins首页控制台--》系统管理--》系统设置







选择Github--》添加Github Server





选择Add




输入github的账号与密码



然后点击Add







配置Jenkins在Hook URL中监听Github的Post请求,然后进行自动构建,所以接下来配置Hook URL,点击高级





启用Hook URL,并将Hook URL(http://url:项目名)复制出来,然后配置ngrok,并启动





(二)Github项目配置


然后在github中新建一个项目,点击Settings



然后输入URL,另外,选择自主事件






其中的URL就是Jenkins中配置的地址,配置方式在上面




选择Push,当Github收到了客户端有Push动作时,会触发一个Hook,保存WebHook之后




(三)Jenkins项目配置


上面都配置好了,之后,Github遇到Push事件时,Jenkins会收到通知,但Jenkins应该做什么呢? 这就需要配置Jenkins项目触发的条件,具体如下:


在Jenkins中新建Maven项目




然后配置下项目的git地址





然后配置构建触发器,并且选择Github Hook触发





配置好之后,点击保存.




(四)测试


这里我用Eclipse导入git中的项目,然后进行修改,修改之后,提交,看Jenkins是否会构建,具体步骤如下:


eclipse中选择Import---->GIT




输入一些连接信息,点击Next




点击Next




点击Next




点击Next




点击Finish,然后修改写些内容






文件右键提交,一提交Jenkins就会自动构建




可以看到Jenkins的输出日志




红灯,报了一个错,找不到pom.xml文件,编辑JK项目,提示




解决方法如下:




然后再次修改项目的文件,然后提交修改,Jenkins会自动构建,输出日志如下




构建成功!!!

### 使用 Jenkins 和 Python 实现持续集成测试 #### 集成测试概述 集成测试是指验证多个模块组合在一起后的功能是否正常工作。对于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、付费专栏及课程。

余额充值