BetterManEddy

导航

 
pipeline {
    agent any

    triggers {
        GenericTrigger(
            // 需要手动执行一下,第二次才能被触发
            genericVariables: [
             [key: 'MESSAGE', value: '$.commits[*].message', expressionType: 'JSONPath'],
             [key: 'REF', value: '$.ref', expressionType: 'JSONPath', regexpFilter: 'refs/heads/']
            ],

            causeString: 'Triggered on $GIT_USER',

            // 使用JOB_NAME作为token,当我的job为Cluster-Hook时,gitlab的webhook填  http://jenkins.example.com/generic-webhook-trigger/invoke?token=Cluster-Hook
            token: env.JOB_NAME,

            printContributedVariables: true,
            printPostContent: true,

            silentResponse: true,

            regexpFilterText: '$MESSAGE',
            // 当提交信息中有 "[    /   时,才触发
            regexpFilterExpression: 'PUBLISH:.*'
        )
    }

    stages {
        stage('pull code') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/' + REF]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'c9b98967-64b4-416c-b10d-c5cf104538d6', url: 'http://*.*.*.git']]])
            }
        }
        stage('npm-build') {
            steps {
                dir("${WORKSPACE}/mpstd-mgr"){
                    sh 'npm i --registry=http://npm.org --unsafe-perm=true --allow-root'
                    sh 'npm run buildDev  --unsafe-perm=true --allow-root=true --force'
                }
            }
        }
        stage('deploy') {
            steps {
                sh '/usr/local/stdappdeploy.sh'
            }
        }
    }

    post {
        success {
            emailext (
                subject: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                body: """<p>SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
                    <p>Congratulations ,your build is successful</p>""",
                to: "8.8.8@163.com",
                from: "3.3.3.3@163.com"
            )
        }

        always {
            step([$class: 'Mailer',
              notifyEveryUnstableBuild: true,
              recipients: "3.3.3.3@163.com",
              sendToIndividuals: true])
        }
    }
}

  

posted on 2021-06-09 16:04  BetterManEddy  阅读(148)  评论(0)    收藏  举报