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

1.初次使用流水线

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

创建Pipeline项目

image-20250907145013607

image-20250907145137214

image-20250907145235991

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

Groovy 复制代码
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') { // 启用 AnsiColor
                    echo "${GREEN}项目开始构建${RESET}"
                    echo "${GREEN}环境变量$var1${RESET}"
                }
                echo "Building"
            }
        }
        stage('PullProject') {
            steps {
								ansiColor('xterm') { // 启用 AnsiColor
                    echo "${PURPLE}项目推送${RESET}"
                    echo "${PURPLE}环境变量$var2${RESET}"
                }
                sh 'echo PullProject'
            }
        }
        stage('Delpoy') {
            steps {
								ansiColor('xterm') { // 启用 AnsiColor
                    echo "${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-20250906233935513

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

相关推荐
M ? A13 分钟前
Vue转React最佳工具对比:Vuera、Veaury与VuReact
前端·javascript·vue.js·经验分享·react.js
sweetone44 分钟前
用一个电阻及一段胶带修复 VORWERK (福维克) THERMOMIX(美善品) TM5-1食品料理机 不工作故障
经验分享·单片机·嵌入式硬件
m0_716765231 小时前
数据结构三要素、时间复杂度计算详解
开发语言·数据结构·c++·经验分享·笔记·算法·visual studio
SccTsAxR2 小时前
算法进阶:贪心策略证明全攻略与二进制倍增思想深度解析
c++·经验分享·笔记·算法
中屹指纹浏览器2 小时前
2026分布式多账号运维体系中指纹浏览器的架构设计与工程落地
经验分享·笔记
智者知已应修善业3 小时前
【51单片机独立按键控制数码管动态显示和LED间隔闪烁并清零】2023-5-28
c语言·经验分享·笔记·算法·51单片机
W.W.H.17 小时前
常见面试题——中断是如何产生的
经验分享·nvic·嵌套向量中断控制器
恒拓高科WorkPlus17 小时前
简单聊天、传文件,为何推荐BeeWorks私有化IM? - BeeWorks
经验分享
LaughingZhu17 小时前
Product Hunt 每日热榜 | 2026-04-10
人工智能·经验分享·深度学习·神经网络·产品运营
W.W.H.17 小时前
嵌入式常见的面试题1
linux·网络·经验分享·网络协议·tcp/ip