介绍
欢迎来到这个关于将 Jenkins 与 Git 集成的实验(Lab)。源代码管理(SCM)是现代软件开发的一个基石。将你的持续集成(CI)服务器(如 Jenkins)与 SCM 系统(如 Git)集成,是自动化构建和测试流程的一个基本步骤。
在这个实验中,你将学习如何:
- 验证 Jenkins Git 插件是否可用。
- 创建一个链接到本地 Git 仓库的自由风格(Freestyle)项目。
- 添加一个构建步骤来执行仓库中的脚本。
- 手动运行一次构建来测试配置。
- 配置 SCM 轮询(polling)以便在新提交时自动触发构建。
一个 Jenkins 实例已经为本次实验运行起来了。你可以通过打开桌面上的 Firefox 浏览器来访问 Jenkins Web 界面。浏览器将自动打开到 http://localhost:8080,因此你无需手动输入 URL。不需要登录。
验证 Git 插件
Jenkins 内置了 Git 集成功能。Git 插件默认已安装,允许 Jenkins 与 Git 仓库进行交互。我们来验证一下 Git 插件是否可用。
- 从桌面界面打开 Firefox 浏览器。浏览器会自动打开到
http://localhost:8080,因此你无需手动输入 URL。无需登录。 - 在 Jenkins 仪表盘(dashboard)上,点击右上角的齿轮图标(设置按钮)。
- 在设置页面上,找到并点击 Plugins。
- 选择 Installed plugins 标签页。
- 在右侧的搜索框中,输入
Git以筛选已安装的插件。 - 你应该在已安装的插件列表中看到 Git plugin,这确认了 Git 集成是可用的。

确认 Git 插件可用后,你现在可以继续下一步,创建一个使用 Git 的项目了。
创建项目并配置 Git SCM
Git 插件安装完成后,你现在可以创建一个 Jenkins 项目并将其配置为从 Git 仓库拉取源代码。
- 点击左上角面包屑导航中的 Dashboard 链接,返回到 Jenkins 主仪表板。
- 点击左侧边栏中的 New Item。
- 输入
git-integration-project作为项目名称。 - 选择 Freestyle project。
- 点击 OK。
这将带你进入项目的配置页面。
- 向下滚动到 Source Code Management 部分。
- 选择 Git 选项。如果你没有看到此选项,请验证 Git 插件是否已在上一 步中正确安装。
- 在 Repository URL 字段中,输入为你准备好的本地 Git 仓库的绝对路径:
https://github.com/labex-labs/git-playground
- 将 Branch Specifier 保留为默认值
*/master。这告诉 Jenkins 使用master分支。 - 点击页面底部的 Save 按钮。

你已成功创建了一个链接到 Git 仓库的 Jenkins 作业。在下一步中,你将定义该作业应该如何处理代码。
添加构建步骤并运行手动构建
现在 Jenkins 知道从哪里获取代码了,你需要告诉它如何处理这些代码。你将添加一个包含 shell 命令的构建步骤,然后手动运行一次构建来测试它。
- 在
git-integration-project的项目页面上,点击左侧边栏中的 Configure。 - 向下滚动到 Build Steps 部分。
- 点击 Add build step 下拉菜单,然后选择 Execute shell。
- 在 Command 文本区域中,输入以下构建命令:
echo "Building the project..."
date
echo "Listing files in workspace:"
ls -la
echo "Build complete!"
当作业运行时,Jenkins 会首先将 Git 仓库克隆到其工作空间,然后从该工作空间内执行这些命令。
- 点击 Save。
- 你现在回到了项目页面。点击左侧边栏中的 Build Now 来启动一次构建。
一个新的构建将出现在 Build History 面板中。等待它完成(状态图标将变为蓝色表示成功)。
- 点击构建编号(例如
#1)。 - 从构建的菜单中点击 Console Output。

你应该会看到输出确认 Jenkins 已成功克隆仓库并执行了你的命令。
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/git-integration-project
> git rev-parse --resolve-git-dir /var/jenkins_home/workspace/git-integration-project/.git ## timeout=10
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building the project...
Building the project...
+ date
Mon Jan 1 12:01:00 UTC 2024
+ echo Listing files in workspace:
Listing files in workspace:
+ ls -la
total 24
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 ..
drwxr-xr-x 8 jenkins jenkins 4096 Aug 21 10:33 .git
-rw-r--r-- 1 jenkins jenkins 32 Aug 21 10:33 README.md
-rw-r--r-- 1 jenkins jenkins 15 Aug 21 10:33 file1.txt
-rw-r--r-- 1 jenkins jenkins 15 Aug 21 10:33 file2.txt
+ echo Build complete!
Build complete!
Finished: SUCCESS
启用 SCM 轮询以实现自动构建
手动运行构建对于测试很有用,但 CI 的真正威力在于自动化。在此步骤中,你将配置 Jenkins,使其在检测到 Git 仓库中的更改时自动启动构建。
- 返回
git-integration-project的配置页面(Project Page > Configure)。 - 向下滚动到 Build Triggers 部分。
- 勾选 Poll SCM 旁边的复选框。
- 会出现一个 Schedule 文本框。这使用了 cron 语法来定义 Jenkins 检查仓库更改的频率。要每分钟轮询一次,请输入以下内容:
* * * * *
- 点击 Save。
由于我们使用的是远程 GitHub 仓库 (https://github.com/labex-labs/git-playground),我们无法直接修改它来测试轮询触发器。但是,你可以观察 SCM 轮询是如何工作的:
- 返回 Jenkins UI 并转到
git-integration-project页面。 - 在左侧边栏中,你会看到一个名为 Git Polling Log 的新选项。点击它。
- 此页面显示了轮询活动。你应该会看到类似以下的条目:
Started on Aug 21, 2025, 10:36:00 AM
Using strategy: Default
[poll] Last Built Revision: Revision d22f46ba8c2d4e07d773c5126e9c803933eb5898 (refs/remotes/origin/master)
The recommended git tool is: NONE
No credentials specified
> git --version ## timeout=10
> git --version ## 'git version 2.30.2'
> git ls-remote -h -- https://github.com/labex-labs/git-playground ## timeout=10
Found 3 remote heads on https://github.com/labex-labs/git-playground
[poll] Latest remote head revision on refs/heads/master is: d22f46ba8c2d4e07d773c5126e9c803933eb5898 - already built by 1
Done. Took 0.36 sec
No changes
这表明 Jenkins 正在成功地每分钟轮询远程仓库以查找更改。在实际场景中,当新的提交被推送到仓库时,Jenkins 会自动触发新的构建。
- 你也可以通过点击 Build Now 来手动触发另一个构建,以查看轮询系统如何与手动构建集成。
总结
在此次实验中,你获得了 CI 流水线中最关键的集成之一的实践经验:将 Jenkins 连接到 Git 源代码控制仓库。
你已成功:
- 验证了启用 Jenkins Git 集成功能所必需的 Git plugin 可用。
- 创建了一个 Freestyle project 并将其配置为从 Git 仓库检出代码。
- 定义了一个 build step 来执行从检出的代码中的 shell 脚本。
- 通过运行 manual build 验证了设置。
- 使用 Poll SCM 设置了自动构建触发器,这使得 Jenkins 能够自动检测并构建新的提交。
这些技能是自动化开发工作流程的基础,也是使用 Jenkins 构建健壮高效的 CI/CD 流水线的首要步骤。

