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

相关推荐
从零开始的嵌入式之旅5 小时前
day44
arm开发·经验分享·笔记·嵌入式硬件
contro1_h12 小时前
关于ArcGIS许可管理器服务无法启动的问题
经验分享·笔记·学习方法
1314lay_100713 小时前
SQL SERVER 修改已创建的表
经验分享·笔记
光视界13 小时前
告别汞污染:UV-LED如何实现环保合规的紫外光源升级
经验分享
UNbuff_014 小时前
局域网免流量跨平台传文件——LocalSend 工具使用教程
经验分享
Dr.Buho16 小时前
macOS 27 升级教程:兼容机型、三种安装方法与降级提示
经验分享·macos
蜉蚁撼树16 小时前
Variant Properties 变体属性
经验分享
陕西企来客16 小时前
GEO与SEO双引擎:企业数字营销从“抢排名”到“抢答案”
经验分享·ai
聚美智数17 小时前
车辆合格证OCR识别-机动车合格证识别-车辆合格证OCR‑机动车出厂证解析‑整车参数提取 API 接口介绍
数据库·经验分享
我不会起名字32217 小时前
万字总结Golang入门项目
数据结构·经验分享·算法·golang·项目实战·复盘