news 2026/2/12 7:31:41

jenkins如何使用流水线 job

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jenkins如何使用流水线 job

我来详细介绍 Jenkins Pipeline(流水线)的使用方法。

一、Jenkins Pipeline 基础概念

Jenkins Pipeline 是一套插件,支持将持续交付过程用代码方式(Infrastructure as Code)定义。主要优势:

  • 可版本控制:Jenkinsfile 可以放入 Git 等版本控制系统

  • 可重用:支持共享库(Shared Libraries)

  • 持久化:即使 Jenkins 重启,构建状态也能保持

  • 可视化:提供 Stage View 和 Blue Ocean 界面

二、创建 Pipeline Job 的步骤

1. 安装必要插件

确保已安装:

  • Pipeline(核心插件)

  • Git(如果需要从 Git 拉取代码)

2. 新建 Pipeline 任务

  • 点击 "新建任务" → 输入任务名 → 选择 "流水线" → 确定

3. 配置 Pipeline 来源

在 Pipeline 配置页,有三种主要方式:

方式一:直接在 Jenkins 中定义(最简单)

groovy

复制

// 在 "Pipeline" 部分的脚本框中直接编写 pipeline { agent any stages { stage('Build') { steps { echo 'Hello World' } } } }
方式二:从 SCM(推荐)
  • 选择 "Pipeline script from SCM"

  • SCM:选择 Git/SVN 等

  • Repository URL:填写仓库地址

  • Credentials:添加认证信息

  • Script Path:Jenkinsfile 在仓库中的路径(默认为Jenkinsfile

方式三:使用 Blue Ocean
  • 安装 Blue Ocean 插件

  • 提供可视化编辑器,自动生成 Jenkinsfile

三、Pipeline 语法类型

1. Declarative Pipeline(声明式 - 推荐)

结构清晰,易于理解和维护:

groovy

复制

pipeline { agent any // 在任何可用的agent上执行 environment { // 定义环境变量 NAME = 'World' BUILD_VERSION = "${env.BUILD_NUMBER}" } parameters { // 构建参数 string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: '部署环境') } triggers { // 触发器 cron('H */4 * * 1-5') // 工作日每4小时 } stages { stage('检出代码') { steps { git 'https://github.com/example/repo.git' } } stage('构建') { steps { sh 'mvn clean package' } } stage('测试') { parallel { // 并行执行 stage('单元测试') { steps { sh 'mvn test' } } stage('集成测试') { steps { sh 'mvn integration-test' } } } } stage('部署') { when { // 条件判断 branch 'main' } steps { sh "./deploy.sh ${params.DEPLOY_ENV}" } } } post { // 构建后操作 always { echo '构建结束' archiveArtifacts artifacts: 'target/*.jar', fingerprint: true } success { echo '构建成功!' } failure { echo '构建失败!' mail to: 'team@example.com', subject: '构建失败', body: "构建 ${env.BUILD_NUMBER} 失败" } } }

2. Scripted Pipeline(脚本式)

更灵活,基于 Groovy 语法:

groovy

复制

node('linux') { def mvnHome stage('检出') { git 'https://github.com/example/repo.git' } stage('构建') { mvnHome = tool 'M3' sh "${mvnHome}/bin/mvn clean package" } stage('测试') { parallel '单元测试': { sh "${mvnHome}/bin/mvn test" }, '集成测试': { sh "${mvnHome}/bin/mvn integration-test" } } stage('部署') { if (env.BRANCH_NAME == 'main') { sh './deploy.sh' } } }

四、常用功能示例

1. Docker 集成

groovy

复制

pipeline { agent { docker { image 'maven:3.8.4-jdk-11' args '-v /root/.m2:/root/.m2' } } stages { stage('Build') { steps { sh 'mvn clean package' } } } }

2. 凭证管理

groovy

复制

environment { // 使用 Jenkins 中定义的凭证 AWS_ACCESS_KEY = credentials('aws-access-key') } steps { withCredentials([usernamePassword( credentialsId: 'docker-hub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD' )]) { sh "docker login -u $USERNAME -p $PASSWORD" } }

3. 超时和重试

groovy

复制

steps { timeout(time: 30, unit: 'MINUTES') { retry(3) { sh ' flaky_command.sh' } } }

五、最佳实践

  1. 使用 Declarative Pipeline:结构更清晰,易于维护

  2. 将 Jenkinsfile 放入版本控制:实现 "Pipeline as Code"

  3. 保持 Stage 职责单一:每个 Stage 只做一件事

  4. 使用 Shared Libraries:复用公共逻辑

  5. 不要硬编码凭证:使用 Jenkins Credentials 插件

  6. 添加足够的日志:便于排查问题

  7. 利用when指令:实现条件执行

  8. 使用post:统一处理构建结果

六、调试技巧

  • 使用echo语句输出变量值

  • 在 Blue Ocean 中查看可视化流程

  • 使用replay功能修改并重新运行

  • 检查 "Pipeline Syntax" 链接,生成代码片段

这样你就可以开始使用 Jenkins Pipeline 了!建议先从简单的 Declarative Pipeline 开始,逐步添加复杂功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/11 23:43:56

【Matlab】五次B样条曲线应用于工业机器人轨迹规划

B样条曲线(B-spline curve)是一种常用于曲线建模和轨迹规划的数学工具。它在工业机器人轨迹规划中有着广泛的应用。B样条曲线能够平滑地描述曲线轨迹,同时具有灵活的控制特性,可以通过调整控制点的位置来实现对曲线形状的精细调节…

作者头像 李华
网站建设 2026/2/12 6:10:21

机器学习001:从“让机器学会思考”到生活中的智能魔法

每天早上醒来,手机推送的新闻恰好是你关注的领域;打开购物软件,首页推荐的商品总能戳中你的喜好;用语音助手发消息,它能精准识别你的口音和语义;开车时,自动驾驶系统会平稳避开障碍物……这些我…

作者头像 李华
网站建设 2026/2/7 19:18:34

Matlab模拟矢量光束之径向偏振光束

Matlab模拟矢量光束之径向偏振光束打开Matlab准备画个径向偏振光束玩玩。这玩意儿的特点是电场矢量沿半径方向分布,就像无数箭头从圆心向外发射。先别急着敲代码,咱得把极坐标系转成直角坐标——Matlab画图还是直角坐标系顺手。先整点基础参数&#xff1…

作者头像 李华
网站建设 2026/2/8 10:07:00

IPSec小结

一、理论学习 视频链接: 【华为数通路由交换HCIP/HCNP(完)】https://www.bilibili.com/video/BV1u741177K9?p61&vd_source074288d86d8ebe37b20564c9a1bc2d47(IPSec VPN) 文章链接: https://blog.c…

作者头像 李华
网站建设 2026/2/11 18:13:17

SAP 中关闭库存期间(MM 物料账期)核心是用MMPV关闭旧期间并打开新期间,配合MMRV控制前期过账权限,同时需完成 FI/CO 等关联模块期间控制与数据校验

SAP 中关闭库存期间(MM 物料账期)核心是用MMPV关闭旧期间并打开新期间,配合MMRV控制前期过账权限,同时需完成 FI/CO 等关联模块期间控制与数据校验,以下是可直接执行的完整步骤与关键配置。一、关闭前准备(…

作者头像 李华