Jenkins pipline 使用模板

模板

/* pipline语言格式 */
pipeline {
    /* 在stage阶段中指定执行节点 */
    agent none
    /* 通过pollSCM轮询监测版本改动 */
    triggers { pollSCM('*/1 * * * *') }
    /* 创建环境变量 */
    environment {
        USER = "xxx"
        MAIL = "xxx@xxx.com"
        PROJECT = "GAME OVER"
        PREPARATION = "None"
        BUILD = "None"
        DEPLOY = "None"
        TEST = "None"
    }
    /* 指定代码块 */
    stages {
        /* 指定主体阶段:拉取代码 */
        stage('Preparation') {
            /* 选择节点标签 */
            agent {
                label 'node1'
            }
            /* 指定DSL命令封装区域 */
            steps {
                /* 拉取代码 */
                git branch: 'xxxxxx', url: 'https://xxxx.git'
            }
            /* 校验条件:校验拉取代码 */
            post {
                /* 无论如何都执行 */
                always {
                    echo "The code pull action is completed"
                }
                /* 拉取失败执行 */
                failure {
                    /* 使用纯DSL语言编辑 */
                    script {
                        echo "Failed to execute code pull action!!!"
                        PREPARATION = "FAILED"
                    }
                }
                /* 拉取成功执行 */
                success {
                    /* 使用纯DSL语言编辑 */
                    script {
                        echo "Successfully execute code pull action!!!"
                        PREPARATION = "SUCCESS"
                    }
                }
            }
        }
        /* 指定主体阶段:打包代码 */
        stage('Build') {
            /* 选择节点标签 */
            agent {
                label 'node1'
            }
            /* 指定DSL命令封装区域 */
            steps {
                echo "gradle build will go here."
            }
            /* 校验条件:校验打包 */
            post {
                /* 无论如何都执行 */
                always {
                    echo "Build stage complete"
                }
                /* 打包失败执行 */
                failure {
                    /* 使用纯DSL语言编辑 */
                    script {
                        echo "Build failed!!!"
                        BUILD = "FAILED"
                    }
                }
                /* 打包成功执行 */
                success {
                    /* 使用纯DSL语言编辑 */
                    script {
                        echo "Build succeeded!!!"
                        BUILD = "SUCCESS"
                    }
                }
            }
        }
        /* 指定主体阶段:部署 */
        stage('Deploy') {
            /* 选择节点标签 */
            agent {
                label 'node1'
            }
            /* 指定DSL命令封装区域 */
            steps {
                echo "Deploy the project environment."
            }
        }
        /* 指定主体阶段:测试 */
        stage('Test') {
            /* 并发执行 */
            parallel {
                /* 指定主体阶段:测试组1 */
                stage ('set1') {
                    /* 选择节点标签:可选标签组 */
                    agent {
                        label 'node1'
                    }
                    /* 指定DSL命令封装区域 */
                    steps {
                        echo "Test project environment. node1"
                        echo "Test project environment. node2"
                        echo "Test project environment. node3"
                    }
                }
                /* 指定主体阶段:测试组2 */
                stage ('set2') {
                    /* 选择节点标签:可选标签组 */
                    agent {
                        label 'master'
                    }
                    /* 指定DSL命令封装区域 */
                    steps {
                        echo "Test project environment. master1"
                        echo "Test project environment. master2"
                        echo "Test project environment. master3"
                    }
                }
            }

        }
    }
    /* 校验条件:校验整体发布流程 */
    post {
        /* 无论如何都执行 */
        always {
            echo "All executed"
        }
        /* 发布失败执行 */
        failure {
            /* 使用纯DSL语言编辑 */
            script {
                /* 发送邮件 */
                echo "Unfortunately failed!!!"
                mail to: "${MAIL}",
                subject: "项目:${PROJECT}发布失败",
                body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}"
            }
        }
        /* 发布成功执行 */
        success {
            /* 使用纯DSL语言编辑 */
            script {
                /* 发送邮件 */
                echo "Great success!!!"
                mail to: "${MAIL}",
                subject: "项目:${PROJECT}发布成功",
                body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}"
            }
        }
    }
}

Jenkins pipline 使用模板
pipeline {

    agent none

    triggers { pollSCM('*/1 * * * *') }

    environment {
        USER = "xxx"
        MAIL = "xxxxxxxxxx@xxx.com"
        PROJECT = "GAME"
        PREPARATION = "None"
        BUILD = "None"
        DEPLOY = "None"
        TEST = "None"
    }

    stages {
        stage('Preparation') {
            agent {
                label 'node1'
            }
            steps {
                git branch: 'xxxxxxx', url: 'https://xxxxxxxxxxxxx.git'
            }
            post {
                always {
                    echo "The code pull action is completed"
                }
                failure {
                    script {
                        echo "Failed to execute code pull action!!!"
                        PREPARATION = "FAILED"
                    }
                }
                success {
                    script {
                        echo "Successfully execute code pull action!!!"
                        PREPARATION = "SUCCESS"
                    }
                }
            }
        }
        stage('Build') {
            agent {
                label 'node1'
            }
            steps {
                echo "gradle build will go here."
            }
            post {
                always {
                    echo "Build stage complete"
                }
                failure {
                    script {
                        echo "Build failed!!!"
                        BUILD = "FAILED"
                    }
                }
                success {
                    script {
                        echo "Build succeeded!!!"
                        BUILD = "SUCCESS"
                    }
                }
            }
        }
        stage('Deploy') {
            agent {
                label 'node1'
            }
            steps {
                echo "Deploy the project environment."
            }
        }
        stage('Test') {
            parallel {
                stage ('set1') {
                    agent {
                        label 'node1'
                    }
                    steps {
                        echo "Test project environment. node1"
                        echo "Test project environment. node2"
                        echo "Test project environment. node3"
                    }
                }
                stage ('set2') {
                    agent {
                        label 'master'
                    }
                    steps {
                        echo "Test project environment. master1"
                        echo "Test project environment. master2"
                        echo "Test project environment. master3"
                    }
                }
            }

        }
    }
    post {
        always {
            echo "All executed"
        }
        failure {
            script {
                echo "Unfortunately failed!!!"
                mail to: "${MAIL}",
                subject: "项目:${PROJECT}发布失败",
                body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}"
            }
        }
        success {
            script {
                echo "Great success!!!"
                mail to: "${MAIL}",
                subject: "项目:${PROJECT}发布成功",
                body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}"
            }
        }
    }
}

无注释版本

Original: https://www.cnblogs.com/xiangsikai/p/13886462.html
Author: kevin.Xiang
Title: Jenkins pipline 使用模板

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554058/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 五、JDK的安装与配置

    一、JDK下载与安装 1.1、下载JDK安装包 博主在这里给大家准备了一个64位操作系统的jdk1.8以便大家下载(使用的是迅雷)点击此处下载提取码:dfbt 如果其他小伙伴的电脑…

    技术杂谈 2023年6月21日
    075
  • Clickhouse副本及分片

    副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据 配置副本 1. zookeeper集群准备 2. Clickho…

    技术杂谈 2023年7月10日
    071
  • java 8 新特性

    java8 是一个有里程碑的一个版本,提供了很多的新特性,但这些新特性是实打实有用的,而不是一些鸡肋 接口新特性 java8 之前,往接口里新加一个方法,那么所有的实现类都需要变动…

    技术杂谈 2023年7月24日
    057
  • 利用clear清除浮动的一些问题

    下面这段代码是用来清除浮动带来的高度塌陷问题 .clearfix:before { content: "."; display: block; height: …

    技术杂谈 2023年5月31日
    0100
  • RestTemplate-解决中文乱码

    【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的个…

    技术杂谈 2023年7月11日
    0101
  • AJAX学习(1)

    基础确认:HTML、CSS、JavaScript AJAX可以: Ajax 的核心是 XMLHttpRequest 对象,用于和服务器交换数据。 xmlhttp.open(&quo…

    技术杂谈 2023年6月21日
    083
  • Uri: getLastPathSegment()

    该函数可用于截取URI当中的文件名。比如一段 URI如下: content://media/external/file/61585 调用该函数得到的结果为: 61585 也就是简化…

    技术杂谈 2023年6月1日
    090
  • Linux命令系列之ls——原来最简单的ls这么复杂

    Linux命令系列之ls——原来最简单的ls这么复杂 ls命令应该是我们最常用的命令之一了,但是我们可能容易忽略那些看起来最简单的东西。 简介 ls命令的使用格式如下 ls [选项…

    技术杂谈 2023年7月24日
    073
  • 理解领域驱动设计

    原文:https://www.cnblogs.com/CKExp/p/14289377.html 前言 什么是领域,我习惯描述的是制药领域、环境领域、建筑领域、金融领域等,而在领域…

    技术杂谈 2023年6月1日
    0132
  • WSL VS Code Server for WSL closed unexpectedly

    直接在管理员PowerShell中WSL –shutdown 本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。另外建了几个QQ…

    技术杂谈 2023年6月1日
    099
  • trojan-go 配置

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/welhzh/p/15678406.htmlAuthor…

    技术杂谈 2023年6月1日
    082
  • Linux系统创建可执行文件软链接

    由于创建软链接这个事情,在算法开发的日常中使用到的并不是很多,因此本文也是做一个简单的回顾。这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使…

    技术杂谈 2023年7月24日
    086
  • Git 11 不同项目设置不同提交人

    前面介绍了可以给 Git 设置全局提交人,这样当前电脑所有项目提交人都会变成设置的值。 但实际开发中有时候需要给 不同项目设置不同提交人。 比如工作的项目是一个提交人,自己维护的开…

    技术杂谈 2023年7月24日
    047
  • 代码规范五条规则

    推荐(eclipse 可以百度搜索下更改默认缩进的位数) public static void main(String[] args) { System.out.println(&…

    技术杂谈 2023年7月25日
    065
  • Flink Checkpoint & Savepoint

    Checkpoint是Flink实现容错机制最核心的功能,能够根据配置周期性地基于Stream中各个Operator的状态来生成Snapshot,从而将这些状态数据定期持久化存储下…

    技术杂谈 2023年7月10日
    082
  • Docker安装mysqli扩展和gd扩展

    Docker安装mysqli扩展 官方php镜像 docker exec -it php-fpm bash cd /usr/local/bin ./docker-php-ext-i…

    技术杂谈 2023年7月10日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球