Jenkins入门教程(四):创建第一个Freestyle Job

本文将带你创建第一个Jenkins Freestyle Job,了解Job的基本配置和构建过程,并提供完整的操作步骤和执行示例。

什么是Freestyle Job

Freestyle Job是Jenkins中最基础的任务类型,通过图形界面配置构建步骤,适合简单的构建任务和入门学习。

创建新任务

1. 在Jenkins首页点击左侧的"新建任务"(New Item)

2. 输入任务名称,如 my-first-job

3. 选择"构建一个自由风格的软件项目"

4. 点击"确定"进入配置页面

配置源码管理

在"源码管理"部分选择Git,配置如下:

  • Repository URL: https://github.com/example/demo-project.git
  • Credentials: 选择已配置的凭据(私有仓库需要)
  • Branch Specifier: */main

配置构建触发器

常用触发方式:

定时构建(Build periodically)

使用cron表达式设置定时构建:

# 每天凌晨2点构建
H 2 * * *

# 每小时构建一次
H * * * *

# 周一到周五每天9点和18点构建
H 9,18 * * 1-5

# 每15分钟构建一次
H/15 * * * *

轮询SCM(Poll SCM)

定期检查代码变更,有变更时触发构建:

# 每5分钟检查一次
H/5 * * * *

配置构建步骤

点击"增加构建步骤" > "执行shell",添加以下脚本:

#!/bin/bash
set -e

echo "========================================"
echo "开始构建任务"
echo "构建编号: ${BUILD_NUMBER}"
echo "工作目录: ${WORKSPACE}"
echo "========================================"

# 显示系统信息
echo "系统信息:"
uname -a

# 显示当前时间
echo "构建时间: $(date '+%Y-%m-%d %H:%M:%S')"

# 如果是代码项目,可以添加以下步骤
echo "检查代码结构:"
ls -la

# 模拟构建过程
echo "执行构建..."
sleep 2

# 模拟测试
echo "运行测试..."
sleep 1

echo "========================================"
echo "构建完成!"
echo "========================================"

配置构建后操作

常用的构建后操作:

  • 归档成品:保存构建产物,如 target/*.jar
  • Publish JUnit test result report:发布测试报告
  • E-mail Notification:发送邮件通知
  • 触发其他项目构建:级联触发下游任务

运行构建

保存配置后,点击左侧菜单的"立即构建"启动任务。

查看构建日志

点击构建历史中的构建编号,然后点击"控制台输出"查看详细日志:

Started by user admin
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/my-first-job
[my-first-job] $ /bin/bash /tmp/jenkins12345.sh
========================================
开始构建任务
构建编号: 1
工作目录: /var/lib/jenkins/workspace/my-first-job
========================================
系统信息:
Linux jenkins-server 5.15.0-164-generic #171-Ubuntu SMP x86_64 GNU/Linux
构建时间: 2026-02-08 11:45:30
检查代码结构:
total 8
drwxr-xr-x 2 jenkins jenkins 4096 Feb  8 11:45 .
drwxr-xr-x 5 jenkins jenkins 4096 Feb  8 11:45 ..
执行构建...
运行测试...
========================================
构建完成!
========================================
Finished: SUCCESS

实战示例:构建Java Maven项目

创建一个实际的Maven项目构建任务:

源码管理配置

  • Repository URL: https://github.com/spring-projects/spring-petclinic.git
  • Branch: */main

构建步骤

#!/bin/bash
set -e

echo "=== 检查环境 ==="
java -version
mvn -version

echo "=== 清理并编译 ==="
mvn clean compile

echo "=== 运行单元测试 ==="
mvn test

echo "=== 打包应用 ==="
mvn package -DskipTests

echo "=== 查看构建产物 ==="
ls -lh target/*.jar

echo "=== 构建完成 ==="

构建后操作

归档成品:target/*.jar

发布测试报告:target/surefire-reports/*.xml

环境变量

Jenkins提供了许多内置环境变量,可以在构建脚本中使用:

# 常用环境变量
echo "BUILD_NUMBER: ${BUILD_NUMBER}"      # 构建编号
echo "BUILD_ID: ${BUILD_ID}"              # 构建ID
echo "JOB_NAME: ${JOB_NAME}"              # 任务名称
echo "WORKSPACE: ${WORKSPACE}"            # 工作空间路径
echo "JENKINS_HOME: ${JENKINS_HOME}"      # Jenkins主目录
echo "GIT_COMMIT: ${GIT_COMMIT}"          # Git提交哈希
echo "GIT_BRANCH: ${GIT_BRANCH}"          # Git分支名

参数化构建

勾选"参数化构建过程",可以添加构建参数:

  • 字符参数:如版本号 VERSION,默认值 1.0.0
  • 选项参数:如环境 ENV,选项 dev/staging/prod
  • 布尔参数:如是否跳过测试 SKIP_TESTS

在脚本中使用参数:

echo "部署版本: ${VERSION}"
echo "目标环境: ${ENV}"

if [ "${SKIP_TESTS}" = "true" ]; then
    mvn package -DskipTests
else
    mvn package
fi

总结

本文介绍了创建Freestyle Job的完整流程,包括源码管理、构建触发器、构建步骤和构建后操作。虽然Freestyle Job简单易用,但对于复杂的CI/CD流程,推荐使用Pipeline。

下一篇我们将介绍Pipeline的基础知识。

发表回复

后才能评论