企业DevOps之路:Jenkins 流水线

简介: Pipeline 即流水线,是 jenkins2.X 的新特性,是 jenkins 官方推荐使用的持续集成方案。与传统的自由风格项目不同,它是通过 jenkins DSL 编写代码来实现。相比于之前用户只能通过 Web 界面进行配置的方式来定义 Jenkins 任务,现在通过使用 jenkins DSL 和 Groovy 语言编写程序,用户可以定义流水线并执行各种任务。

1. Pipeline 概述


Pipeline 即流水线,是 jenkins2.X 的新特性,是 jenkins 官方推荐使用的持续集成方案。与传统的自由风格项目不同,它是通过 jenkins DSL 编写代码来实现。相比于之前用户只能通过 Web 界面进行配置的方式来定义 Jenkins 任务,现在通过使用 jenkins DSL 和 Groovy 语言编写程序,用户可以定义流水线并执行各种任务。


Jenkins pipeline包含两类元素,分别是stages和steps。如图:


微信图片_20220504122848.png


  • step 代表单一的操作;告诉 Jenkins 做什么。比如,代码从仓库检出代码,执行脚本
  • stage 等于一系列 step 的组合,通常来表示 Jenkins pipeline 进程的可示化。例如,Build、Test、Deploy等


更详细的资料请查看官网


https://www.jenkins.io/doc/book/pipeline/


Pipeline 有两种语法,分别是声明式和脚本式


声明式语法


pipeline {
  agent any
  stages {
stage('Build') {
          steps {
// TODO
          }
      }
stage('Test') {
          steps {
// TODO
          }
      }
stage('Deploy') {
          steps {
// TODO
          }
      }
  }
}


agent any:表示任意一个可用代理节点上执行该Pipeline


stage('Build'):定义阶段


steps {}:阶段执行的步骤


脚本式语法


node {
stage('Build') {
// TODO
  }
stage('Test') {
// TODO
  }
stage('Deploy') {
// TODO
  }
}


node:表示任意一个可用代理节点上执行该Pipeline


stage('Build') {}:定义阶段。在脚本式语法中 stage 代码块是可选的;不过明确写上的话可以让每个阶段的任务更清晰


2. 安装 Jenkins Pipeline 插件


安装 Pipeline 和 Pipeline Maven Integration 插件


Manage Jenkins -> Manage Plugins


微信图片_20220504122853.png


安装后,重启 Tomcat。


3. 流水线编译与部署


创建流水线任务


新建Item


微信图片_20220504122856.png


配置流水线任务


初学者对于 Pipeline 的脚本肯定无从入手的;但是 Pipeline 提供了一个非常有用的帮助文档。


微信图片_20220504122901.png


http://127.0.0.1:8080/jenkins/job/Pipeline_maven/pipeline-syntax/


Pipeline 脚本有两种编写模式


  • Pipeline 脚本
  • Jenkinsfile 文件


微信图片_20220504122905.png


这里选择 Pipeline script


3.1 克隆代码


git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'https://gitee.com/hjj520/ruoyi-patrol.git'


3.2 编译


bat 'mvn clean install'


在 Windows 操作系统 Jenkins Pipeline 中要使用bat来运行 Windows 命令;而 Linux 操作系统则需要使用sh来运行 Shell 命令。


3.3 上传 jar包


bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'


图片


完整 Pipeline 脚本


pipeline {
  agent any
  stages {
stage('git clone') {
          steps {
              git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'https://gitee.com/hjj520/ruoyi-patrol.git'
          }
      }
stage('complie') {
          steps {
                bat 'mvn clean install'
          }
      }
stage('upload') {
          steps {
                bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'
          }
      }
  }
}


其他步骤可以自行添加,例如,测试、部署等。

相关文章
|
8天前
|
运维 Devops 持续交付
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第34天】在数字化时代的浪潮中,DevOps成为企业追求敏捷、高效和稳定的关键。本文将通过一个真实案例,展示如何构建一个高效的DevOps流水线,实现从代码提交到部署的全自动化流程。我们将探讨流水线设计的哲学、工具选择以及面临的挑战,并分享实际的代码示例和操作步骤,帮助读者理解自动化运维的精髓。
23 2
|
15天前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
39 2
|
16天前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
44 4
|
1月前
|
运维 监控 Devops
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第6天】 在现代软件开发的快节奏中,自动化运维成为提高效率、保障质量的重要手段。本文将带你了解如何构建高效的DevOps流水线,从持续集成到部署,再到监控和反馈,我们将一步步揭开自动化运维的神秘面纱。你将学习到如何通过代码和工具的结合,实现软件交付过程的自动化,以及如何通过这一流程提升团队的协作和响应速度。让我们开始探索自动化运维的奇妙之旅吧!
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
82 1
|
2月前
|
运维 Devops jenkins
自动化运维:打造高效DevOps流水线
【8月更文挑战第44天】本文将通过深入浅出的方式,带你构建一个自动化的DevOps流水线,提升开发和部署效率。从基础概念到实际操作,我们一步步剖析如何实现代码提交、自动测试、构建、部署的全过程自动化。你将学会使用Jenkins、Git、Docker等工具,并结合Shell脚本编写,完成一个完整的自动化流程。文章末尾附有完整的示例代码,助你快速上手实践。
|
3月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
75 0
|
3月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
62 0
|
3月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
45 0
|
3月前
|
前端开发 Devops 持续交付
【前端自动化新高度】Angular与Azure DevOps完美结合:从零构建持续集成与持续部署的全自动流水线,提升开发效率与软件交付质量!
【8月更文挑战第31天】Angular作为领先的前端框架,以强大功能和灵活性深受开发者喜爱。Azure DevOps提供一站式DevOps服务,涵盖源码管理、持续集成(CI)及持续部署(CD)。本文将指导你如何在Azure DevOps中搭建Angular项目的CI/CD流程,并通过具体示例代码展示整个过程。首先,我们将创建一个Angular项目并初始化Git仓库;然后,在Azure DevOps中设置CI流水线,定义YAML文件以自动化构建和部署流程。最终实现每次提交代码后自动构建并部署至Azure Web App,极大提升了开发效率和软件交付速度,使团队更专注于创新。
35 0

热门文章

最新文章