76 lines
2.5 KiB
Plaintext
76 lines
2.5 KiB
Plaintext
|
pipeline {
|
|||
|
agent any
|
|||
|
|
|||
|
environment {
|
|||
|
DOCKER_REGISTRY_USER = credentials('docker-registry-user')
|
|||
|
DOCKER_REGISTRY_PWD = credentials('docker-registry-pwd')
|
|||
|
DINGTALK_TOKEN = credentials('dingtalk-token')
|
|||
|
DOCKER_IMAGE_TAG = createVersion()
|
|||
|
}
|
|||
|
|
|||
|
parameters {
|
|||
|
gitParameter(branch: '',
|
|||
|
branchFilter: '.*',
|
|||
|
defaultValue: 'origin/master',
|
|||
|
listSize: '10',
|
|||
|
name: 'GIT_BRANCH',
|
|||
|
quickFilterEnabled: true,
|
|||
|
selectedValue: 'DEFAULT',
|
|||
|
sortMode: 'DESCENDING_SMART',
|
|||
|
tagFilter: '*',
|
|||
|
type: 'PT_BRANCH_TAG',
|
|||
|
description: 'Select your branch or tag.')
|
|||
|
choice(name: 'MODULE_PARMS', choices: ['did-server'], description: 'select module of project')
|
|||
|
string(name: 'DOCKER_IMAGE_TAG', defaultValue: '', description: 'docker 镜像 tag,默认为当前时间戳 + 编译号码,例如:20190909_113757_89')
|
|||
|
}
|
|||
|
|
|||
|
stages {
|
|||
|
stage('Checkout') {
|
|||
|
steps {
|
|||
|
checkout([$class: 'GitSCM',
|
|||
|
branches: [[name: "${params.GIT_BRANCH}"]],
|
|||
|
doGenerateSubmoduleConfigurations: false,
|
|||
|
extensions: [],
|
|||
|
submoduleCfg: [],
|
|||
|
userRemoteConfigs: [
|
|||
|
[
|
|||
|
credentialsId: 'git_credential',
|
|||
|
url: 'https://git.ehlxr.me/ehlxr/did.git'
|
|||
|
]
|
|||
|
]
|
|||
|
])
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
stage('Build') {
|
|||
|
steps {
|
|||
|
sh "mvn clean install -DskipTests -e -U"
|
|||
|
sh "cp ${MODULE_PARMS}/target/${MODULE_PARMS}*.jar && sh build.sh"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
post {
|
|||
|
success {
|
|||
|
sh sendMsg("Jenkins Pipeline Finished: SUCCESS! \n docker image tag is: ${env.DOCKER_IMAGE_TAG}")
|
|||
|
}
|
|||
|
failure {
|
|||
|
sh sendMsg("Jenkins Pipeline Finished: FAILED!")
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
def createVersion() {
|
|||
|
if("${env.DOCKER_IMAGE_TAG}" == ""){
|
|||
|
return new Date().format('yyyyMMdd_HHmmss') + "_${env.BUILD_NUMBER}"
|
|||
|
}
|
|||
|
|
|||
|
return "${env.DOCKER_IMAGE_TAG}"
|
|||
|
}
|
|||
|
|
|||
|
def sendMsg(String msg) {
|
|||
|
return "curl -s https://oapi.dingtalk.com/robot/send?access_token=${env.DINGTALK_TOKEN} \
|
|||
|
-H 'Content-Type: application/json' \
|
|||
|
-d '{\"msgtype\": \"text\",\"text\": {\"content\": \""+ msg +"\"}}'"
|
|||
|
}
|