Jenkins使用手册
简介
Jenkins 是一种开源的持续集成 (Continuous Integration) 工具,它可以帮助开发团队自动化构建、测试和部署软件项目。它是基于 Java 编写的,具有丰富的插件生态系统,可以与各种编程语言和工具集成,使得持续集成和持续交付流程更加灵活和高效。Jenkins 提供了一个可视化的 Web 界面,让用户可以轻松配置和管理各种构建任务。
官方文档地址:https://www.jenkins.io/doc/
部署
jenkins有多种方式部署
- docker
- linux应用服务
- window应用服务
- macos应用服务
- war包部署
推荐用docker或war包部署。
war包部署
war包部署内嵌了容器,可以执行以下命令启动。
java -jar jenkins.warwar包也可以在servlet容器内部署,但是不推荐,原因如下:
- 在servelt容器部署的形式未通过大量测试
- 未来将取消在servelet容器内部署的支持
使用
插件
启动Jenkins之后,一般要安装插件。jenkins有丰富的插件市场,直接在那里下载安装就行。比如:
- maven
- git
- github
- 等
项目item
jenkins支持这些项目,根据需要在系统内配置就行。
| 类型 | 是否可执行构建 | 适合复杂流程 | 自动分支支持 | 多环境测试 | 管理用途 |
|---|---|---|---|---|---|
| Freestyle | ✅ | ❌ | ❌ | ❌ | 单一简单任务 |
| Pipeline | ✅ | ✅ | 可配合多分支 | ✅ | 中大型任务 |
| Multi-config | ✅ | ⚠️局限于 UI 配置 | ❌ | ✅✅ | 多平台测试 |
| Multibranch Pipeline | ✅ | ✅ | ✅✅✅ | ⚠️需手动扩展 | 多分支 Dev |
| Organization Folder | ✅ | ✅ | ✅(GitHub/GitLab 集成) | ✅ | 大型团队仓库管理 |
| Folder | ❌ | ❌ | ❌ | ❌ | 项目分类与权限隔离 |
Jenkinsfile
Jenkinsfile 是一个用于定义 **Jenkins 流水线(Pipeline)**构建流程的文本文件,写在源码仓库中,用 Groovy DSL 编写。
作用:
- 用代码(而不是点点点)来定义构建、测试、部署的整个流程
- 支持版本控制(与项目代码一起存在于 Git 仓库中)
- 实现真正的 Pipeline as Code
默认是放在代码仓库根目录,文件名就是:Jenkinsfile
格式
- Declarative(声明式)语法 ✅ 推荐 结构清晰,更易读易写,适合大部分 CI/CD 任务。
groovy
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
sh 'make'
}
}
stage('Test') {
steps {
echo 'Testing...'
sh 'make test'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
sh 'make deploy'
}
}
}
}- Scripted(脚本式)语法 基于纯 Groovy,更灵活、功能更强,但语法复杂。
groovy
node {
stage('Build') {
echo 'Building...'
sh 'make'
}
stage('Test') {
echo 'Testing...'
sh 'make test'
}
stage('Deploy') {
echo 'Deploying...'
sh 'make deploy'
}
}