配置基础 Freestyle 项目

JenkinsBeginner
立即练习

介绍

欢迎来到关于在 Jenkins 中配置基础 Freestyle 项目的本次实验(Lab)。Freestyle 项目是 Jenkins 中一个高度灵活且易于使用的选项,适用于任何类型的项目。它允许你通过基于 Web 的图形界面配置构建触发器(build triggers)、构建步骤(build steps)和构建后操作(post-build actions)。

在本次实验中,你将学习如何:

  • 向项目添加 Shell 命令构建步骤。
  • 使用触发器(triggers)安排构建自动运行。
  • 归档(archive)构建产物(artifacts)以供后续使用。
  • 配置构建后操作,例如工作区清理(workspace cleanup)。

一个 Jenkins 实例已在运行,并且已为你创建了一个名为 sample-project 的基础 Freestyle 项目。你可以通过打开桌面上的 Firefox 浏览器来访问 Jenkins Web 界面。浏览器将自动打开到 http://localhost:8080,因此你无需手动输入 URL。无需登录。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 95%。获得了学习者 88% 的好评率。

添加构建步骤

在此步骤中,你将向你的 Freestyle 项目添加一个构建步骤(Build Step)。构建步骤是项目的核心,定义了 Jenkins 将执行的操作,例如编译代码、运行测试或执行 shell 脚本。

首先,我们导航到项目配置页面。

  1. 从桌面界面打开 Firefox 浏览器。浏览器将自动打开到 http://localhost:8080,因此你无需手动输入 URL。无需登录。
  2. 在 Jenkins 仪表板上,你将看到 sample-project。点击其名称进入项目页面。
  3. 在左侧菜单中,点击 Configure(配置)。
Jenkins project page

现在,你已进入项目的配置页面。让我们添加一个构建步骤。

  1. 向下滚动到 Build Steps(构建步骤)部分。
  2. 点击 Add build step(添加构建步骤)下拉按钮,然后选择 Execute shell(执行 shell)。
Build Steps section
  1. 将出现一个文本框。在 Command(命令)框中输入以下命令:
echo "Building the project..."
date
echo "Build complete."
  1. 点击页面底部的 Save(保存)按钮。

你现在已经配置了一个构建步骤。让我们运行构建来看看它的实际效果。

  1. 在项目页面上,点击左侧菜单中的 Build Now(立即构建)。
  2. Build History(构建历史)部分将出现一个新的构建。点击构建编号(例如 #1)。
  3. 在该构建的左侧菜单中,点击 Console Output(控制台输出)。

你将看到你添加的 shell 命令的输出,确认你的构建步骤已成功执行。

Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/sample-project
[sample-project] $ /bin/sh -xe /tmp/jenkins12345.sh
+ echo 'Building the project...'
Building the project...
+ date
Tue Jan 1 12:00:00 UTC 2024
+ echo 'Build complete.'
Build complete.
Finished: SUCCESS

使用触发器调度构建

在本步骤中,你将学习如何使用构建触发器自动调度构建。这是持续集成的一项基本功能,允许你定期运行构建。

  1. 导航回 sample-project 的配置页面(项目页面 > Configure)。
  2. 找到 Build Triggers 部分。
  3. 勾选 Build periodically 旁边的复选框。
Build Triggers section
  1. 将出现一个 Schedule 文本区域。此字段使用 cron 语法定义调度。该语法由 5 个由空格分隔的字段组成:MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK
  2. 要大约每分钟运行一次构建,请在 Schedule 字段中输入以下内容:
* * * * *

此 cron 表达式表示“每分钟运行一次”。虽然 Jenkins 支持 H 符号用于负载均衡,但 H/1 * * * * 实际上每小时运行一次,而不是每分钟。要真正实现每分钟运行一次,请使用 * * * * *

  1. 点击 Save

Jenkins 现在将大约每分钟自动触发一次 sample-project 的新构建。你可以通过观察项目页面上的 Build History 来观察这一点。

归档构建产物

在本步骤中,你将学习如何归档构建产物(artifacts)。产物是构建产生的输出文件,例如编译后的二进制文件或报告。归档它们可以使它们在构建完成后可供下载。

首先,我们需要修改构建步骤以创建一个可以归档的文件。

  1. 导航到 sample-project 的配置页面。
  2. 滚动到 Build Steps 部分,找到你的 Execute shell 命令框。
  3. 在脚本中添加新的一行,创建一个名为 build-info.txt 的文件。$BUILD_NUMBER 是 Jenkins 提供的环境变量,其中包含当前的构建号。
echo "Building the project..."
date
echo "Build complete."
echo "This artifact is from build #$BUILD_NUMBER" > build-info.txt

接下来,让我们配置一个构建后操作来归档此文件。

  1. 向下滚动到 Post-build Actions 部分。
  2. 点击 Add post-build action 下拉菜单,然后选择 Archive the artifacts
Add post-build action dropdown
  1. Files to archive 字段中,输入你想要归档的文件名:build-info.txt。你也可以使用通配符,如 **/*.jar 来归档多个文件。
  2. 点击 Save

现在,通过点击 Build Now 来运行一个新的构建。构建完成后:

  1. 点击 Build History 中的最新构建号。
  2. 在构建的状态页面上,你将看到一个名为 Build Artifacts 的部分,其中包含指向 build-info.txt 的链接。你可以点击它来查看或下载文件。
Completed build page

配置工作空间清理

在这一最后的配置步骤中,你将添加一个构建后操作来清理工作区。这是一个很好的实践,可以节省磁盘空间,并确保每次构建都在一个干净的环境中开始,防止之前构建生成的文件的干扰。

  1. 前往 sample-project 的配置页面。
  2. 向下滚动到 Post-build Actions 部分。
  3. 点击 Add post-build action 下拉菜单,然后选择 Delete workspace when build is done
Add post-build action dropdown
  1. 点击 Save

现在,在 sample-project 的每次构建完成后,Jenkins 将删除工作区目录中的所有文件。请注意,归档的产物会单独存储,不受工作区清理的影响。这确保了你的构建产物保持可用,同时为下一次运行保持构建环境的清洁。

总结

恭喜你完成了本次实验。你已成功掌握了配置 Jenkins Freestyle 项目的基础知识。

在本次实验中,你练习了:

  • 添加 Execute shell 命令作为构建步骤。
  • 设置 Build Trigger 以使用 cron 语法定期调度构建。
  • 创建和归档 构建产物
  • 配置 Post-build Action 以在构建后删除工作区。

这些是使用 Jenkins 自动化你的构建、测试和部署流程的基本技能。你现在可以将这些概念应用到创建和管理你自己的 CI/CD 流水线。