第三章:快速入门
创建您的第一个 Jenkins 构建任务,学习基本操作和工作流程。
最后更新: 2024-01-15
页面目录
Jenkins 快速入门
本章将带您创建第一个 Jenkins 构建任务,熟悉 Jenkins 的基本操作界面和工作流程。
访问 Jenkins
启动 Jenkins 后,通过浏览器访问:
http://localhost:8080
登录后,您将看到 Jenkins 主界面:
┌─────────────────────────────────────────────────────────────────┐
│ Jenkins [用户名 ▼] │
├─────────────────────────────────────────────────────────────────┤
│ │
│ + 新建任务 🔍 搜索 │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ● dashboard │ │
│ │ ├─ 任务状态概览 │ │
│ │ │ • 构建历史 │ │
│ │ │ • 节点状态 │ │
│ │ │ • 系统信息 │ │
│ │ └─ 快速链接 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ + 创建流水线项目 + 新建任务 │
└─────────────────────────────────────────────────────────────────┘
创建第一个 Freestyle 项目
步骤 1:新建任务
- 点击左侧 「新建任务」
- 输入任务名称:
my-first-build - 选择 「构建一个自由风格的软件项目」
- 点击 「确定」
步骤 2:配置项目
General 配置
| 配置项 | 值 | 说明 |
|---|---|---|
| 描述 | 我的第一个 Jenkins 项目 | 项目说明 |
| 丢弃旧的构建 | ✅ | 保留最近 10 次构建 |
| 参数化构建过程 | ❌ | 暂不使用 |
源码管理
选择 Git 并配置仓库:
Repository URL: https://github.com/example/sample-project.git
Credentials: [添加 GitHub 凭据]
Branch: */main
构建触发器
配置自动触发条件:
| 触发方式 | 配置 |
|---|---|
| 轮询 SCM | H/5 * * * * (每5分钟检查) |
| Build after other projects | project-name |
| 定时构建 | H 2 * * * (每天凌晨2点) |
构建步骤
添加构建步骤:
1. 执行 Shell
#!/bin/bash
echo "======================================"
echo "开始构建..."
echo "======================================"
# 编译项目
echo "Step 1: 编译代码"
./mvnw clean compile
# 运行测试
echo "Step 2: 运行测试"
./mvnw test
# 打包
echo "Step 3: 打包应用"
./mvnw package -DskipTests
echo "======================================"
echo "构建完成!"
echo "======================================"
2. 记录 JUnit 测试结果
测试报告 XML: target/surefire-reports/*.xml
3. 归档构建产物
待归档的文件: target/*.jar
步骤 3:保存并构建
- 点击 「保存」
- 在项目页面点击 「立即构建」
- 查看构建进度和控制台输出
构建结果解读
控制台输出
构建过程中可以实时查看日志:
Started by user admin
Running as SYSTEM
Building remotely on Agent-1 (linux) in workspace /home/jenkins/workspace/my-first-build
[Pipeline] timeout
Timeout set to expire in 10 min
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
开始构建...
[Pipeline] echo
Step 1: 编译代码
+ ./mvnw clean compile
...
Finished: SUCCESS
构建状态图标
| 状态 | 图标 | 含义 |
|---|---|---|
| 🔵 蓝色 | 成功 | 所有步骤执行成功 |
| 🔴 红色 | 失败 | 某步骤执行失败 |
| 🟡 黄色 | 不稳定 | 测试失败但编译成功 |
| ⚪ 灰色 | 中止 | 构建被手动取消 |
| 🟠 橙色 | 灰度 | 正在构建中 |
创建第一个 Pipeline 项目
Pipeline 语法简介
Pipeline 使用声明式语法,在 Jenkinsfile 中定义:
pipeline {
agent any
environment {
APP_NAME = 'my-app'
VERSION = '1.0.0'
}
options {
timeout(time: 30, unit: 'MINUTES')
buildDiscarder(logRotator(numToKeepStr: '10'))
}
stages {
stage('Checkout') {
steps {
echo '检出代码...'
checkout scm
}
}
stage('Build') {
steps {
echo '编译项目...'
sh 'mvn clean package -DskipTests'
}
}
stage('Test') {
steps {
echo '运行测试...'
sh 'mvn test'
}
post {
always {
junit 'target/surefire-reports/*.xml'
}
}
}
stage('Deploy') {
when {
branch 'main'
}
steps {
echo '部署应用...'
sh './deploy.sh'
}
}
}
post {
always {
echo '清理工作...'
}
success {
echo '构建成功!'
}
failure {
echo '构建失败!'
}
}
}
创建 Pipeline 项目
- 点击 「新建任务」
- 输入任务名称:
my-first-pipeline - 选择 「Pipeline」
- 在 Pipeline 脚本框中粘贴上述代码
- 点击 「保存」 和 「立即构建」
常用操作
查看构建历史
项目首页 → 构建历史 → 点击构建编号 → 控制台输出
参数化构建
添加字符串参数:
pipeline {
parameters {
string(name: 'BRANCH', defaultValue: 'main', description: 'Git 分支名')
choice(name: 'ENV', choices: ['dev', 'staging', 'prod'], description: '部署环境')
booleanParam(name: 'SKIP_TEST', defaultValue: false, description: '跳过测试')
}
stages {
stage('Build') {
steps {
echo "构建分支: ${params.BRANCH}"
echo "部署环境: ${params.ENV}"
}
}
}
}
邮件通知
配置构建后操作:
构建后操作 → Editable Email Notification
Default Content: $BUILD_STATUS - $PROJECT_NAME
Recipients: $DEFAULT_RECIPIENTS
实践练习
练习 1:Hello World Pipeline
创建一个最简单的 Pipeline:
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello Jenkins!'
sh 'echo "Today is $(date)"'
}
}
}
}
练习 2:多阶段构建
创建一个包含编译、测试、部署的完整 Pipeline:
pipeline {
agent {
label 'docker'
}
stages {
stage('Clone') {
steps {
git 'https://github.com/spring-projects/spring-boot.git'
}
}
stage('Build') {
steps {
sh './mvnw clean package -DskipTests'
}
}
stage('Test') {
steps {
sh './mvnw test'
}
post {
always {
junit '**/target/surefire-reports/*.xml'
}
}
}
stage('Docker Build') {
steps {
sh '''
docker build -t myapp:$BUILD_NUMBER .
'''
}
}
}
post {
always {
cleanWs()
}
}
}
下一步
现在您已经掌握了 Jenkins 的基本操作。接下来让我们深入学习 Pipeline 的核心概念和语法。
🎯 练习提示:建议在本地环境中动手实践,创建不同的项目类型,熟悉 Jenkins 的各种配置选项。