从零到一搭建一个jenkins+github持续构建平台

本文详细介绍了如何从零开始搭建Jenkins+GitHub的持续集成平台,包括Jenkins的安装配置、解决插件下载速度问题、配置GitHub webhook以及常见问题解决。通过实践操作,实现自动化构建流程,提高开发效率。
间歇性励志患者 lv-1
阅读 67
关注

从零到一搭建一个jenkins+github持续构建平台

开门见山,直奔主题,直捣黄龙,废话不多说,开淦!

安装Jenkins

两种方式

普通安装
1. 下载RPM包

官网:https://jenkins.io/download/ 清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/ -- 推荐

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.235.4-1.1.noarch.rpm
复制代码
2. 如果没有安装JAVA,需安装JAVA
[root@localhost ~]# yum install -y java
复制代码
3. 安装Jenkins
[root@localhost ~]# rpm -ivh jenkins-2.235.4-1.1.noarch.rpm 
复制代码
4. Jenkins服务默认端口为8080,若发生冲突可修改配置文件
# 修改配置文件 /etc/sysconfig/jenkins
[root@localhost ~]# cat /etc/sysconfig/jenkins  |grep JENKINS_PORT
JENKINS_PORT="50000"
JENKINS_USER="root" #可修改jenkins用户组避免在构建时的权限不足问题
复制代码
5.开启服务
#start 开启服务 
#stop 关闭服务 
#restart 重启服务
[root@localhost ~]# systemctl start jenkins
复制代码
docker安装
1.安装docker
yum -y install docker #yum安装
 
service docker start  #启动docker服务
 
ps -ef|grep docker    #查看docker状态(是否启动)
复制代码
2.拉取官方docker镜像地址
docker search jenkins           #搜索所有的jenkins镜像

docker pull jenkins             #拉取jenkins镜像(按需拉取)
 
docker images | grep jenkins    #查看jenkin镜像是否下载成功
复制代码
2.启动容器
mkdir /home/jenkins_home    #创建jenkins工作空间
 
chown -R 1000 /home/jenkins_home    #设置文件夹权限

 docker run -d --name myjenkins -p 50000:8080 -v /home/jenkins_home:/home/jenkins_home jenkins  创建容器并启动
 
docker ps | grep jenkins   查看是否映射成功
复制代码
3.访问jenkins地址
 http://ip:50000    #访问
复制代码
4.密码获取
docker ps   #查看容器 
 
docker exec -i -t 容器的id或者容器名字 /bin/bash  #进入容器
 
cat /var/jenkins_home/secrets/initialAdminPassword  #查看密码
复制代码
插件换源(解决jenkins安装插件慢的问题)
#jenkins的工作目录可在http://ip:50000/configure中找到
cd {你的Jenkins工作目录}/updates  #进入更新配置位置

#用sed命令替换所有插件下载的url,并替换连接测试的url
$ sed -i 's#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json
复制代码

配置jenkins

1. 在浏览器中输入http:ip:port进入jenkins页面(首次加载比较慢)
2. 输入初始密码验证,密码所在看页面提示
3. 安装推荐的插件
4. 等待安装
5. 安装完毕创建管理员账户

6. 在系统管理->插件管理中查看NodeJS/github插件是否安装,没有的话需要安装一下

7. 安装完成后在系统管理->全局工具配置中配置一下nodejs
8. 配置好全局nodejs之后在系统管理->系统配置中配置一下github签名连接

由于jenkins只识别用户名/密码、签名两种模式(推荐),可以在这个地方生成一个github签名token供github服务器连接使用

9. 全局配置完了,开始创建项目任务吧
10. 配置项目任务(通用配置)
11. 配置项目任务的git仓库

如果你添加的是私有仓库需要选择一个github账号密码的凭证

12. 选择构建触发器
13. 选择构建环境
14. 编写构建代码,然后点击应用+保存

配置github webhook

1. 进入你的github项目,然后进入settings->webhooks,点击add webhook,把jenkins的webhook地址填进来
2. 点击绿色的保存按钮,然后刷新页面,看看是否连接成功。如果没有成功,检查jenkins那边是否配置正确
好了,上面准备工作算是做完了,万事俱备只欠东风了,开==淦==吧

触发构建,欣赏成果

1. 可以点击项目的立即构建,触发构建过程
2. 点击右下角的构建历史列表中的构建程序->控制台输出,可以查看构建结果
3. 最后提交你的项目到master分支就可以出发github的webhook钩子通知jenjins出发自动化构建过程了,解放了你的双手。有这时间又可以多撸几下手边的程序猿鼓励猫了,哈哈~

结语

自动化构建确实大大的解放了我们生产力,不用再做一些重复性的工作,提高工作效率,而且减少了机械性重复工作的出错概率,很赞!但是在学习jenkins的时候也遇到了一些问题甚至困扰了我一两天,比如服务器上git安装版本过低一直无法链接私有仓库,再比如nodejs安装版本过高导致的构建错误等等,在g站搜了好久都没人解答,最后偶然发现问题错误的真正原因是什么。jenkins的报错机制有些确实不是很清晰,需要自己一遍一遍的尝试。

转载:https://juejin.im/post/6860424870170689543
### 概述 搭建集成 **GitHubJenkins、Pytest 和 Allure** 的自动化测试平台,主要涉及以下几个方面: 1. 使用 Docker 部署 Jenkins 环境; 2. 在 Jenkins 中配置 Pytest 测试任务; 3. 集成 Allure 报告生成插件; 4. 与 GitHub 进行连接,实现代码推送后自动触发测试流程。 --- ### 使用 Docker 部署 Jenkins 环境 可以使用 `docker-compose.yml` 文件快速部署 Jenkins 容器,并确保其具备运行 Python 自动化测试的能力。以下是一个完整的配置示例: ```yaml version: '3' services: jenkins: image: jenkins/jenkins:lts privileged: true user: root ports: - "8080:8080" - "50000:50000" volumes: - jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 volumes: jenkins_home: ``` 启动容器后,在浏览器中访问 `http://<服务器IP>:8080` 即可进入 Jenkins 初始化界面。初始化完成后,登录并进行必要的插件安装和全局工具配置[^3]。 --- ### Jenkins 中配置 Pytest 测试任务 在 Jenkins 中创建一个新的自由风格项目(Freestyle Project),并进行如下配置: #### 1. 源码管理(Source Code Management) 选择 Git,并填写你的 GitHub 仓库地址以及凭据(建议使用 Personal Access Token): ``` Repository URL: https://github.com/yourname/yourrepo.git Branches to build: */main 或 */master ``` #### 2. 构建环境(Build Environment) 勾选 “Delete workspace before build starts”,确保每次构建都是干净的环境。 #### 3. 构建步骤(Build Steps) 选择“Execute shell”或“Windows Batch Command”,根据系统类型执行以下命令: ```bash # 安装依赖 pip install -r requirements.txt # 执行 Pytest 测试并将结果输出到 allure-results 目录 pytest test_your_module.py --alluredir=./allure-results --clean-alluredir ``` --- ### 配置 Allure 报告插件 在 Jenkins 插件管理中安装 **Allure Report Plugin**,然后在项目的“Post-build Actions”中添加“Report Generation”,指定 Allure 结果目录为 `./allure-results`。 完成配置后,每次构建成功后会自动生成可视化的 Allure 测试报告页面。 --- ### 与 GitHub 集成实现持续集成 在 GitHub 仓库中设置 Webhook,指向 Jenkins 的钩子地址,例如: ``` http://<jenkins-server>:8080/github-webhook/ ``` 这样当有新的提交推送到 GitHub 时,Jenkins 就会自动拉取代码并触发构建任务,从而实现完整的 CI/CD 流程。 --- ### 示例:完整 Jenkinsfile 实现(适用于 Pipeline) 如果使用 Jenkins Pipeline,可以在项目根目录下创建 `Jenkinsfile`,内容如下: ```groovy pipeline { agent any stages { stage('Clone Repository') { steps { git branch: 'main', url: 'https://github.com/yourname/yourrepo.git' } } stage('Install Dependencies') { steps { sh 'pip install -r requirements.txt' } } stage('Run Tests') { steps { sh 'pytest test_your_module.py --alluredir=./allure-results --clean-alluredir' } } } post { always { allure includeProperties: false, jdk: '', results: [[path: 'allure-results']] } } } ``` 该文件定义了从代码拉取、依赖安装、执行测试到生成 Allure 报告的全过程。 --- ### 注意事项 - 确保 Jenkins 容器内已安装 Python、Pytest 及相关依赖库; - 若 Jenkins 运行在 Linux 系统上,推荐使用虚拟环境(如 `venv`)隔离测试依赖; - Jenkins 容器需要具有读写权限以生成 Allure 报告; - 如果遇到权限问题,可在容器启动时加上 `-uroot` 参数以提升权限级别。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值