Jenkins持续集成
前言
本文简单记录Jenkins的学习与操作步骤,操作系统为macOS,官网文档:https://www.jenkins.io/zh/doc/
Jenkins概述
-
Jenkins是什么:Jenkins是一个独立的开源自动化服务器,基于Java开发,可用于自动执行与构建,测试,交付或部署软件相关的各种任务。其中:
- 持续集成:
- 功能角度:类似maven生命周期,集成各种插件。 Jenkins可以集成git, maven, sonar,部署插件等。
- 项目角度:各个小组分别负责各个模块开发,本模块独立测试虽然能够通过,但是上线前将所有模块整合到一起集成测试却发现很多问题,想要解决就需要把代码返工重写,而且仍然有可能有问题。那么经常性、频繁的把所有模块集成在一起进行测试,有问题尽早发现,这就是持续集成,目的是尽早发现项目整体运行问题,尽早解决。
- 持续交付:
- 功能角度:功能迭代迅速,持续发布,不需要等待一个大版本再发布。
- 项目角度:项目的各个升级版本之间间隔如果时间太长,对用户反馈修改不及时,无法改善用户体验,用户流失严重。那么经常用小版本不断进行快速迭代,不断收集用户反馈信息,用最快的速度改进优化,目的是研发团队的最新代码能够尽快让最终用户体验到。
- 持续集成:
-
Jenkins目标
- 降低风险:—天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷。
- 减少重复过程:编译、测试、打包、部署等等固定操作都必须要做,无法省略任何一个环节,而使用Jenkins等持续集成工具,可以把构建环节从手动完成转换为自动化完成。
- 随时生成可部署的软件:持续集成可以在随时发布可以部署的软件。利用持续集成,可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成,如果出现问题,项目团队马上可知晓,问题会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品。
-
Jenkins的优点
- 配置简单:是所有CI产品中在安装和配置上最简单的
- 用户体验:基于Web访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。
- Java相关:Jenkins是基于Java开发的(如果你是一个Java开发人员,这是非常有用的),但它不仅限于构建基于Java的软件。
- 应用便捷:Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能,且都是开源的,可以直接通过web界面来进行安装与管理。
Jenkins安装
官网参考链接:https://www.jenkins.io/doc/book/installing/ ,本人使用的macOS系统,暂时先记录此系统版本
- 安装Jenkins及前置程序
brew install openjdk@17 brew install maven3.9 brew install sonarqube brew install sonarqube-scanner brew install jenkins
- 配置服务
- 配置jdk环境变量
# 系统Java包装器找到这个JDK,执行 sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
# 设置JAVA_HOME # vim ~/.zshrc export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH" # 使配置生效 source ~/.zshrc
- maven已全部自动配好
- sonarqube服务配置:sonar.properties
# 查看配置文件目录 brew list sonarqube # 编辑,依次修改sonar.jdbc、sonar.web相关配置,参考sonar学习笔记 vim /opt/homebrew/Cellar/sonarqube/9.9.0.65466/libexec/conf/sonar.properties
- sonarqube-scanner配置:sonar-scanner.properties
# 编辑 vim /opt/homebrew/Cellar/sonar-scanner/4.8.0.2856/libexec/conf/sonar-scanner.properties # 调整内容 sonar.host.url=http://localhost:9000 sonar.sourceEncoding=UTF-8 sonar.projectKey=study-jenkins-sonar-demo
- jenkins配置:默认8080端口
# 编辑 vim /opt/homebrew/Cellar/jenkins/2.393/homebrew.mxcl.jenkins.plist # 修改服务ip和端口 <array> <string>/opt/homebrew/opt/jenkins/bin/jenkins</string> <string>--httpListenAddress=127.0.0.1</string> <string>--httpPort=8089</string> </array>
- 启动服务
brew services start jenkins brew services start sonarqube brew services start sonar-scanner
- 解锁Jenkins:访问http://localhost:8080,输入启动Jenkins时的密令解锁
Jenkins的使用
通过配置git、jdk、maven、sonar实现项目自动集成、打包、检查、发布。参考官网:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/
-
全局工具配置:依次配置Git、JDK、Maven、Sonar(需要先在插件管理里面安装SonarQube Scanner for Jenkins 插件)
Dashboard -》系统管理 -》全局工具配置
-
关联git项目:Dashboard -》输入任务名称(随意) -》 选择“构建自由风格的项目” -》确定 -》配置“源码管理,选择Git,输入项目git地址和git登录账户” -》Build Steps:依次设置Maven、Execute SonarQube Scanner -》应用并保存
-
构建项目
-
其他功能参考官网使用,暂时先学到这