Files
admin-api/jenkins/Jenkinsfile
T
2019-03-27 10:29:20 +08:00

65 lines
2.8 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
node {
def mailto="601470458@qq.com,505127606@qq.com,154707516@qq.com,444949396@qq.com,714943302@qq.com" //邮件接收人员列表
def containerName="adminapi" //容器名称
def imageName="130.120.3.193/com.gzzn.omms/admin-api:1.2.0-SNAPSHOT" //镜像名称
def credentialsId="e41b57a4-436a-4617-817c-9e3f25a8a47f" //ssh证书id
def deployHost="130.120.3.231" //发布到的主机
try {
checkout scm
docker.image('maven:3-alpine').inside('-v /root/.m2:/root/.m2') {
stage('build'){
sh 'mvn clean package dockerfile:build dockerfile:push -Dmaven.test.skip=true'
}
stage('deploy'){
def remote = [:]
remote.name = "airport-dev"
remote.host = "${deployHost}"
remote.allowAnyHosts = true
withCredentials([sshUserPrivateKey(credentialsId: "${credentialsId}", keyFileVariable: 'kfIdentity', passphraseVariable: 'pVariable', usernameVariable: 'userName')]) {
remote.user = userName
remote.identityFile = kfIdentity
sshCommand remote: remote, command: "docker stop ${containerName}",sudo: true ,failOnError: false
sshCommand remote: remote, command: "docker rm ${containerName}",sudo: true ,failOnError: false
sshCommand remote: remote, command: "docker rmi ${imageName}",sudo: true ,failOnError: false
sshCommand remote: remote, command: "docker run -d -p 92:8080 --name ${containerName} ${imageName}",sudo: true
}
}
}//end docker
//发送成功邮件
emailext (
subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 更新正常",
body: """
详情:
SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'
状态:${env.JOB_NAME} jenkins 更新运行正常
URL ${env.BUILD_URL}
项目名称 ${env.JOB_NAME}
项目更新进度:${env.BUILD_NUMBER}
""",
to: "${mailto}",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
}
catch(e)
{
emailext (
subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 更新失败",
body: """
详情:
FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'
状态:${env.JOB_NAME} jenkins 运行失败
URL ${env.BUILD_URL}
项目名称 ${env.JOB_NAME}
项目更新进度:${env.BUILD_NUMBER}
""",
to: "${mailto}",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
throw e
}//end catch
}