当前位置: 首页 > news >正文

Jenkins运维之路(初识流水线)

1.初次使用流水线

前面我们用自由风格的流水线进行了项目部署,但是自由风格的流水线只能应付一些简单且项目规模不是很大的部署。为了让流水线能够灵活、通用、逻辑清晰且更加容易维护,现在一般企业都是采取使用了Pipeline的方式来对流水线进行构建,从这里起应该就是我从企业部署流水线的一个历程,另外近期需要对流水线进行改造,那么我也将改造的过程一并在后面写入。

创建Pipeline项目

image-20250907145013607

image-20250907145013607

image-20250907145137214

image-20250907145137214

image-20250907145235991

image-20250907145235991

这是一条简单的流水线示例,兄弟们可以先感受下

pipeline {agent { node { label "node47"}}tools {git 'Git'maven 'maven399'jdk 'jdk1701'}environment {var1  = "var1"var2  = "var2"var3  = "var3"RED = "\u001B[31m"GREEN = "\u001B[32m"   // 绿色PURPLE = "\u001B[35m"  // 紫色RESET = "\u001B[0m"    // 重置}options {// 保留构建次数buildDiscarder(logRotator(numToKeepStr: '5'))// 不允许同时执行流水线disableConcurrentBuilds()// 流水线执行的超时时间timeout(time: 25, unit: 'MINUTES')// 构建时的时间信息timestamps()}parameters {string(name: 'BRANCH_TAG', defaultValue: 'master', description: 'Enter the GF branch to checkout')}stages {stage('Checkout') {steps {script {git (credentialsId: "giteeuptest", url: 'https://gitee.com/wolfan_119/spring-boot-3-hello-world-jdk21.git', branch: "${BRANCH_TAG}")}}}stage('Build') {steps {ansiColor('xterm') { // 启用 AnsiColorecho "${GREEN}项目开始构建${RESET}"echo "${GREEN}环境变量$var1${RESET}"}echo "Building"}}stage('PullProject') {steps {ansiColor('xterm') { // 启用 AnsiColorecho "${PURPLE}项目推送${RESET}"echo "${PURPLE}环境变量$var2${RESET}"}sh 'echo PullProject'}}stage('Delpoy') {steps {ansiColor('xterm') { // 启用 AnsiColorecho "${RED}项目部署${RESET}"echo "${RED}环境变量$var3${RESET}"}sh 'echo Delpoy'}}}post {always {sh "echo 构建后总是执行这个步骤"}success {sh "echo 构建成功了执行这个步骤"}failure{sh "echo 构建失败了执行这个步骤"}aborted{sh "echo 构建取消了执行这个步骤"}}
}

参数简介

  •  pipeline 用于声明流水线的标识(有声名式和脚本式2中风格,但是不用纠结这些)
  •  anget 指定在那个节点执行打包流程 any代表任意节点
  •  tools 指定打包工具(这里是在jenkins中配置好的,之前在工具初始化有提起过)
  •  environment 环境变量,用于定义在流水线执行过程中的一些变量信息
  •  options jenkins自带的一些配置项
  •  parameters 参数化构建,定义一些特定的参数
  •  stages stages是一个容器,用于包含多个stage。它将流水线的不同阶段组织在一起,使得整个构建过程更清晰。每个 stage 可以代表流水线中的一个主要步骤或任务。
  •  stage stage是流水线中的一个单独的阶段,表示构建过程中的一个特定任务或步骤。每个 stage 可以包含一个或多个 steps,并且可以有自己的条件和环境设置。它帮助用户理解构建的不同部分。
  •  steps steps是在一个 stage 中定义的具体操作或任务,它包含实际执行的命令或脚本,例如编译代码、运行测试、部署应用等。每个 step 可以是一个内置的 Jenkins 步骤或自定义的脚本。
  •  post 根据流水线的执行结果(成功、失败、未稳定等)执行不同的操作,

2.执行下流水线

image-20250906233635498

image-20250906233635498

image-20250906233935513

image-20250906233935513

从这里看Pipeline风格流水线从可视化这里要比自由风格的流水线好很多,这些日子对公司的流水线做些改造,刚好可以一并写进来,不过更新速度可能会慢一些了!最后欢迎大家入群一起讨论运维技术,如果看不见群信息可以私聊


文章转载自:

http://gyQSqnDE.zxhpx.cn
http://vPXqyYZ6.zxhpx.cn
http://rApaaGza.zxhpx.cn
http://rTTokO9H.zxhpx.cn
http://VRg1W9eo.zxhpx.cn
http://krqa87Pc.zxhpx.cn
http://4Y8iMRLr.zxhpx.cn
http://NAWq94cY.zxhpx.cn
http://37oLHhkS.zxhpx.cn
http://9t3TgWgA.zxhpx.cn
http://TruwuWLp.zxhpx.cn
http://VN0NeBBg.zxhpx.cn
http://NLABz51m.zxhpx.cn
http://5DwOfh5R.zxhpx.cn
http://O9xGInma.zxhpx.cn
http://6el8ploq.zxhpx.cn
http://j7NNrlnS.zxhpx.cn
http://5ZJlDpQn.zxhpx.cn
http://qvrKWFNU.zxhpx.cn
http://iPqKm404.zxhpx.cn
http://gUmH69uz.zxhpx.cn
http://UN1BUq6v.zxhpx.cn
http://SGwXuqqj.zxhpx.cn
http://o5QiW8F0.zxhpx.cn
http://PHbCLhNo.zxhpx.cn
http://AwHQWART.zxhpx.cn
http://OZjBnthH.zxhpx.cn
http://PWIs0VLO.zxhpx.cn
http://L9PSjjLQ.zxhpx.cn
http://yvnHYXq2.zxhpx.cn
http://www.dtcms.com/a/372809.html

相关文章:

  • 内窥镜冷光源
  • Linux设备内存不足如何处理
  • 【JavaSE】复习总结
  • uview使用u-popup组件当开启遮罩层禁止下层页面滚动。uniapp弹框禁止页面上下滚动。
  • 爱普生喷墨打印机所有指示灯同时闪烁,不工作,怎么解决?
  • 这是一款没有任何限制的免费远程手机控制手机的软件
  • 【LCA 树上倍增】P9245 [蓝桥杯 2023 省 B] 景区导游|普及+
  • 【计算机网络】计算机网络英文名词速查
  • C++之queue类的代码及其逻辑详解
  • 36.Java序列化与反序列化是什么
  • 进阶向:HTTP性能优化实战
  • 对计算机网络模型的理解
  • 【Linux】MySQL数据目录迁移步骤(含流程图踩坑经验)
  • LangChain: Evaluation(评估)
  • 在电路浪涌测试中,TVS(瞬态电压抑制二极管)的防护效果确实会受到陪测设备中去耦网络(Decoupling Network,DN)的显著影响
  • 深入了解linux系统—— 日志
  • 3D开发工具HOOPS助力造船业数字化转型,打造更高效、更智能的船舶设计与协作!
  • 大语言模型时代文本水印技术的综述解读
  • 《WINDOWS 环境下32位汇编语言程序设计》第13章 过程控制(2)
  • 1. 统计推断-基于神经网络与Langevin扩散的自适应潜变量建模与优化
  • STM32U575RIT6 简单代码(参考模板)
  • 在新发布的AI论文中 pytorch 和tensorflow 的使用比例
  • Chapter3—单例模式
  • k8s可视化的解决方案及技术选型
  • K8s Ingress Annotations参数使用指南
  • Kubernetes(K8S)入门以及命令指南
  • 自建prometheus监控腾讯云k8s集群
  • Go 1.25在性能方面做了哪些提升?
  • Next.js数据获取入门:`getStaticProps` 与 `getServerSideProps`
  • 为什么要在出口路由器router配置NAT与默认路由