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

相关推荐
聪明的笨猪猪38 分钟前
Spring Boot & Spring Cloud高频面试清单(含通俗理解+生活案例)
java·经验分享·笔记·面试
聪明的笨猪猪1 小时前
Spring MVC高频面试清单(含通俗理解+生活案例)
java·经验分享·笔记·面试
胖墩会武术1 小时前
大模型效果优化方案(经验分享)
人工智能·经验分享·python·语言模型
晨非辰1 小时前
《从数组到动态顺序表:数据结构与算法如何优化内存管理?》
c语言·数据结构·经验分享·笔记·其他·算法
前路不黑暗@5 小时前
Java:代码块
java·开发语言·经验分享·笔记·python·学习·学习方法
聪明的笨猪猪6 小时前
Java SE “核心类:String/Integer/Object”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
聪明的笨猪猪6 小时前
Java SE “语法”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
Sic_MOS_7801682415 小时前
超高密度2kW GaN基低压电机驱动器的设计
人工智能·经验分享·汽车·集成测试·硬件工程·能源
聪明的笨猪猪16 小时前
面试清单:JVM类加载与虚拟机执行核心问题
java·经验分享·笔记·面试
计算机小手16 小时前
AI截图解答工具,可自定义设置多模态模型和提示词
人工智能·经验分享·开源软件