首先理解持续集成原理,看懂并理解图 1。

图
1
持续集成原理结构
图
1
中,版本控制服务器指远程代码仓库,本实验使用
GitEE
作为远程代码仓库;Jenkins
自动化部署服务器为虚拟机,操作系统为
Linux
;服务器
1…n
为应用服务器,可使用自己物理机作为应用服务器。
详细实验步骤如下:
一、安装 Git 工具
在物理机上安装 Git
,可通过以下方式安装:
1.官网下载安装文件进行安装,官网地址:
https://git-scm.com/download/win
安装 Git
教程:
https://blog.csdn.net/mukes/article/details/115693833
Git 使用教程:
https://www.liaoxuefeng.com/wiki/896043488029600
二、GitEE 创建仓库
1.
登录
GieEE,
如未有帐号,先注册帐号,注册完登录
GitEE
。记住用户名和 邮箱。

2.
创建仓库。

三、使用 Git 工具将本地项目代码推送到远程仓库(GieEE)
共有四种方式将本地项目代码推送到远程仓库。
方式一:使用
Git Bash
推送
方式二:使用
Git Command
推送
方式三:使用
Git GUI
推送
方式四:使用
Idea
集成
Git
工具推送
具体使用哪种方式看使用习惯。下面以
Git Bash
方式演示代码推送。
1.
进入本地项目所在目录,右键项目,选择
Git Bash Here
。
打开
Git Bash
命令行,输入:
git init
命令。



进入项目目录,找到.git 隐藏目录,进入该目录,用
记事本方式
打开
config 文件
,并修改

config 文件内容如下:


这里的
user要自己手动添加,origin后面会加上去的
,user的数据哪里来呢,在我们建好的仓库有一个
克隆/下载
选项,点击之后就会出现我们需要的资料了。把
name和email后面引号内的内容
复制过去就可以了。
修改完成后,回到 Git Bash 命令行,输入:
git remote add origin 远程仓库地址
,其中远程仓库地址为 Gitee 仓库地址。如下图HTTPs下的那个https开头的地址所示:接下来将当前目录所有文件添加到暂存区,在 Git Bash 命令行输入:
git add ./
,如下图所示:
将代码提交,输入命令:
git commit -m ‘备注信息’
推送代码,输入命令:
git push origin master

推送完成后,登录
GitEE
查看代码是否成功推送。这里的登录就用上了上面的
私人令牌,没有私人令牌就会像下面一样。
点击下面图片上的配置私人令牌的链接,就会跳转到相对应的页面。
点击生成新令牌, 就会到下一个界面,随便写一个描述直接生成就可以了,但是注意,一定要把令牌复制保存下来,不然只能重新搞一个了。这些搞定之后继续回到上面执行命令出现登陆界面,就把对应的账号和令牌填进去就可以了。
注意:这里还有可能出现拉取上传不了的情况,可能是因为远程仓库和本地文件夹的版本不一样,也就是里面文件不一样也是不能成功的,一个通用暴力的方法就是直接在push后面加一个-f,如上图,就可以上传成功,但是这样的方法会覆盖掉前面的仓库版本,只适合咱初学者刚开始时候尝试,慎用!!!
然后我们就可以在远程仓库看到上拉成功了。
四、Linux 环境下安装 Jenkins
1.在 Linux 环境下通过 Dorcker 容器安装 Jenkins(先安装jdk21和maven)
Linux
系统中先要安装
JDK
,如果没有安装,
可直接在配置界面安装)、
Maven
(
Linux
系统中提前安装
Maven
,并配置好
Maven
)
先查看
系统有无jdk以及maven。这里推荐下载Java21版本,兼容性比前面的要好。
java -version
sudo apt install openjdk-21-jre-heardless


mvn -v
sudo apt install maven


搜索
Jenkins
镜像:
docker search jenkins

拉取
Jenkins
镜像:
docker pull jenkins/jenkins

创建文件目录,用于保存
Jenkins
数据。
sudo mkdir -p /data/jenkins
sudo chmod 777 /data/jenkins

运 行 Jenkins 容器:
docker run -itd -p 8081:8080 -p 50000:50000 -v
/data/jenkins:/var/jenins_home --name myjenkins jenkins/jenkins
查看已启动容器:
docker ps

容器启动后,即可访问
Jenkins
服务器。
查看
Jenkins
密钥:
docker logs myjenkins
(第一次登录
Jenkins
服务器需要输
入密钥)
.

这里要重点注意这个命令执行完之后,下拉找到对应的密钥:

2.安装 Jenkins
打开浏览器,输入
Jenkins
访问地址:http://ip:8081
,这里的ip是虚拟机的IP地址可以下载下面的工具查询,如下图所示:
sudo apt install net-tools
ifconfig


初次运行,要求输入
Jenkins 密钥,这里就是上面执行完之后下拉找到的那个密钥了
。输入完成后,进入
Jenkins
主页。


3.配置 Jenkins
Jenkins
配置内容包括:用户管理、系统配置、全局工具配置、插件管理,具
体如下图所示。
上图中数字表示配置顺序。
用户管理:添加一个用户,记住用户名和密码,添加完成后用新用户登录。
插件管理:只需要安装
Publish over SSH
和
Deploy to container Plugin
这两个 插件。全局工具配置:需要配置
JDK,
配置 git
。
Configure System (
系统设置
)
:主要配置应用服务器地址及凭证,暂可不配
置。
这里的配置暂时失败,还不知道什么原因,还需要探索一下。全都失败了,下载不了。



4、创建项目并配置自动化构建和自动化部署
创建一个自由风格项目,点击 New Item,创建一个项目。

创建项目后,配置项目如下信息:项目简介、源码管理、构建触发器、构建
环境、构建、部署
项目简介如下图所示:

源码管理配置信息如下图所示:
构建触发器和构建环境可不配置。

构建配置如下图所示:

构建后动作的配置需要配置服务器信息,用于实现自动部署。