使用 Jenkins、SonarQube 和 Gitee 搭建 CI/CD 环境

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读2.8k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502本文将介绍如何使用 Jenkins、SonarQube 和 Gitee 搭建 CI/CD 环境

  • Jenkins是一款开源的自动化持续集成工具,主要用于自动化构建、测试和部署软件项目
  • SonarQube是一款开源的代码质量管理平台,可以帮助开发团队在开发过程中监控和管理代码质量。它支持多种编程语言,包括Java、C#、C++、Python等

我的思路是,前端提交代码到 Gitee,通过 Web Hook,触发 Jenkins 的任务,再拉起 SonarQube 代码检查,检查通过,进行前端项目的打包和部署

服务器配置

手中正好有两台腾讯云的服务器

SonarQube 最好安装在具有 3GB 以上内存的服务器上。我使用的服务器配置如下:

  • 2核4G CVM
  • 1核2G Lighthouse

安装过程

安装宝塔面板

出于方便运维的考虑,我给两台服务器安装上了宝塔

image.png

建议可以安装Docker管理器Nginx这个两个应用

安装 Jenkins

由于 Jenkins 部署所需的内存较小,可以直接选用 Lighthouse 来部署

如果服务器内存较小,可以通过以下命令限制 Docker 的最大运行内存为 1024MB

因为 Jenkins 也是部署在容器,如果要利用 Jenkins 再部署业务容器,需要设置 --privileged \ -u root \ -v /var/run/docker.sock:/var/run/docker.sock \

docker run \
  --privileged \
  -u root \
  -dit \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /var/jenkins-data:/var/jenkins_home \
  -v /usr/bin/docker:/usr/bin/docker \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -m 1024m \
  jenkins/jenkins:latest

安装 Jenkins 没有什么意外,按照提示一步一步走就好了

配置 Jenkins
  1. 访问 Jenkins 控制台:在浏览器中输入 http://<your_server_ip>:8080

  2. 解锁 Jenkins:在 Jenkins 的安装日志中,可以看到初始密码,然后输入到控制台。

image.png

  1. 安装插件:选择 "Install suggested plugins",等待插件安装完成。

  2. 创建管理员用户:按照提示创建一个管理员用户并设置密码。

  3. 配置 Jenkins URL:确认 Jenkins URL,然后点击 "Save and Finish"。

  4. 完成 Jenkins 安装:点击 "Start using Jenkins"。

安装完 Jenkins 之后,你可以安装 汉化插件 和 Node,这里就不详细说了,网上有很多案例

安装 SonarQube

由于这款软件对内存有要求,这里使用 2核4G CVM 来部署

  1. 首先安装 PostgreSQL 数据库,然后安装 SonarQube:
# 安装 PostgreSQL
docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -v /data/docker/postgres/postgresql:/var/lib/postgresql -v /data/docker/postgres/data:/var/lib/postgresql/data -d postgres

# 安装 SonarQube
docker run --name sonarqube --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -v /data/docker/sonarqube/data:/opt/sonarqube/data -v /data/docker/sonarqube/extensions:/opt/sonarqube/extensions -v /data/docker/sonarqube/logs:/opt/sonarqube/logs -p 9000:9000 -d sonarqube

在安装和使用 SonarQube 的时候踩了很多坑,如果在运行过程中出现如下错误:

WARN: Unable to locate 'report-task.txt' in the workspace. Did the SonarScanner succeed?
ERROR: SonarQube scanner exited with non-zero code: 137
Finished: FAILURE

这很可能是由于内存不足导致的。请检查服务器内存配置并进行相应调整。

配置 SonarQube
  1. 访问 SonarQube 控制台:在浏览器中输入 http://<your_server_ip>:9000

  2. 登录 SonarQube:使用默认的管理员用户名(admin)和密码(admin)登录。

  3. 更改管理员密码:点击右上角的 "Administrator",选择 "我的账号",然后在 "安全" 选项卡中更改密码。

  4. 创建一个新的项目:点击 "Create new project",输入项目名称和项目密钥,然后点击 "Set Up"。

  5. 生成项目令牌:输入一个名称,点击 "Generate",然后复制生成的令牌。

集成 Jenkins 和 SonarQube

  1. 安装 SonarQube 插件:在 Jenkins 控制台中,点击 "Manage Jenkins" > "Manage Plugins" > "Available",搜索 "SonarQube",然后安装 "SonarQube Scanner for Jenkins" 插件。

  2. 配置 SonarQube 服务器:点击 "Manage Jenkins" > "Configure System",在 "SonarQube servers" 部分,点击 "Add SonarQube"。输入名称、服务器 URL(例如:http://<your_server_ip>:9000)和之前生成的项目令牌。

企业微信20220725-112338.png

image.png

  1. 配置 Jenkins 项目:在 Jenkins 控制台中,点击 "New Item",输入项目名称,选择 "Freestyle project",然后点击 "OK"。在项目配置页面,配置源代码管理、构建触发器等选项。

这里主要是设置 Gitee 代码仓库 和 Node

image.png

image.png

  1. 添加 SonarQube 扫描步骤:在 "Build" 部分,点击 "Add build step",选择 "Execute SonarQube Scanner"。根据项目的编程语言和构建工具,配置 "Analysis properties"。

image.png

  1. 保存并构建项目:点击 "Save",然后点击 "Build Now"。等待构建完成,查看 SonarQube 分析结果。

配置 Gitee Webhooks

  1. 登录 Gitee,进入项目页面,点击 "设置" > "Webhooks"。

  2. 点击 "添加Webhook",输入 "Payload URL"(例如:http://<your_server_ip>:8080/gitee-webhook/)、"Secret" 和 "Confirm password"。选择需要触发 Jenkins 构建的事件,然后点击 "添加"。

  3. 在 Jenkins 项目中配置 Gitee Webhooks:点击 "Configure",在 "Build Triggers" 部分,勾选 "Gitee Webhooks"。配置 "Secret" 和触发构建的事件,然后点击 "Save"。

通过 SSH,实现 Jenkins 和 Gitee 的连接: 请参考 这篇文章 进行配置。

使用

现在,只要我提交代码到 master 分支,Gitee 将自动触发 Jenkins 构建,并通过 SonarQube 分析代码质量。在 Jenkins 的任务 Console Output 中可以看到 SonarQube 的日志,点击链接,可以跳转到 SonarQube 查看代码分析的结果

image.png

结束

至此,我们已经成功搭建了 Jenkins、SonarQube 和 Gitee 的 CI/CD 环境。后续可以根据实际需求,进一步优化和完善 CI/CD 流程。

彩蛋

在搭建完整套流程之后,真正用起来,其实还是有很多地方需要改进,比如 CD 流程需要更加完善、根据 SonarQube 检查结果判断是否继续进行打包、版本回滚功能 等等。就本文分享的内容,都耗费了我好几个周末。

作为一个精力有限的程序员,在部署个人业务时,如果想要一个开箱即用的 CI/CD 工作流怎么办,在我不懈的搜索下,有了答案 阿里云效流水线

阿里云效流水线,我花了半天,就把个人项目集成进去了。有很多插件可以用,关键是 免费

image.png

关于 阿里云效 的集成和使用方法,本文就不再赘述了,掘金上也有很多优秀的相关文章可以查看

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值