zoukankan      html  css  js  c++  java
  • 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}
    BUILD=${BUILD}
    DEPLOY=${DEPLOY}
    TEST=${TEST}"
                }
            }
            /* 发布成功执行 */
            success {
                /* 使用纯DSL语言编辑 */
                script {
                    /* 发送邮件 */
                    echo "Great success!!!"
                    mail to: "${MAIL}",
                    subject: "项目:${PROJECT}发布成功",
                    body: "Preparation=${PREPARATION}
    BUILD=${BUILD}
    DEPLOY=${DEPLOY}
    TEST=${TEST}"
                }
            }
        }
    }
    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}
    BUILD=${BUILD}
    DEPLOY=${DEPLOY}
    TEST=${TEST}"
                }
            }
            success {
                script {
                    echo "Great success!!!"
                    mail to: "${MAIL}",
                    subject: "项目:${PROJECT}发布成功",
                    body: "Preparation=${PREPARATION}
    BUILD=${BUILD}
    DEPLOY=${DEPLOY}
    TEST=${TEST}"
                }
            }
        }
    }
    无注释版本
  • 相关阅读:
    Makefile.am文件配置
    PHP之mb_check_encoding使用
    PHP之mb_internal_encoding使用
    MarkDown编辑使用指南
    test
    [MySQL]修改mysql的root密码
    开启IT之旅_真理不死,信念永恒
    Python pickle 模块
    python注意点
    GAT2.0使用文档(组合接口测试)
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/13886462.html
Copyright © 2011-2022 走看看