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])
}
}
}