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

相关推荐
晨非辰8 小时前
#C语言——刷题攻略:牛客编程入门训练(九):攻克 分支控制(三)、循环控制(一),轻松拿捏!
c语言·开发语言·经验分享·学习方法·visual studio
TeleostNaCl9 小时前
OpenWrt | 在 PPP 拨号模式下启用 IPv6 功能
网络·经验分享·智能路由器·ip
晓衣19 小时前
2025“獬豸杯”全国电子数据取证竞赛-k8s服务器取证wp
服务器·经验分享·程序人生·网络安全·容器·kubernetes·学习方法
计算机小手1 天前
AI 驱动数据分析:开源 SQLBot 项目探索,基于大模型和 RAG 实现精准问数与图表挖掘
经验分享·docker·开源软件
acc82261 天前
十四、IT 新技术
经验分享
孤独的人1 天前
WordPress性能优化全攻略:从插件实战到系统级优化
经验分享
草莓熊Lotso1 天前
PyCharm 从入门到高效:安装教程 + 快捷键速查表
开发语言·ide·经验分享·笔记·其他
acc82261 天前
0. 系统架构设计师考试大纲核心内容速览
经验分享
芯片智造2 天前
一文看懂什么是GaN HEMT以及其工艺流程(氮化镓高电子迁移率晶体管)
经验分享·芯片·半导体·晶体管·氮化镓高电子迁移率晶体管