调整构建脚本,动态pom获取名字及版本信息。
This commit is contained in:
Vendored
+101
-64
@@ -1,65 +1,102 @@
|
|||||||
node {
|
/*
|
||||||
def mailto="601470458@qq.com,505127606@qq.com,154707516@qq.com,444949396@qq.com,714943302@qq.com" //邮件接收人员列表
|
* 依赖插件:
|
||||||
def containerName="adminapi" //容器名称
|
* SSH Pipeline Steps
|
||||||
def imageName="130.120.3.193/com.gzzn.omms/admin-api:1.2.0-SNAPSHOT" //镜像名称
|
* Pipeline Utility Steps
|
||||||
def credentialsId="e41b57a4-436a-4617-817c-9e3f25a8a47f" //ssh证书id
|
*
|
||||||
def deployHost="130.120.3.231" //发布到的主机
|
*/
|
||||||
|
|
||||||
try {
|
pipeline {
|
||||||
checkout scm
|
agent any
|
||||||
docker.image('maven:3-alpine').inside('-v /root/.m2:/root/.m2') {
|
|
||||||
stage('build'){
|
environment {
|
||||||
sh 'mvn clean package dockerfile:build dockerfile:push -Dmaven.test.skip=true'
|
credentialsId = 'e41b57a4-436a-4617-817c-9e3f25a8a47f'
|
||||||
}
|
deployName = 'airport-dev'
|
||||||
|
deployHost = '130.120.3.231'
|
||||||
stage('deploy'){
|
mailto = '154707516@qq.com'
|
||||||
def remote = [:]
|
dockerProtocol = "http"
|
||||||
remote.name = "airport-dev"
|
dockerRegistry = '130.120.3.193'
|
||||||
remote.host = "${deployHost}"
|
containerName="adminapi"
|
||||||
remote.allowAnyHosts = true
|
export=92
|
||||||
|
|
||||||
withCredentials([sshUserPrivateKey(credentialsId: "${credentialsId}", keyFileVariable: 'kfIdentity', passphraseVariable: 'pVariable', usernameVariable: 'userName')]) {
|
GROUP = readMavenPom().getGroupId()
|
||||||
remote.user = userName
|
ARTIFACTID = readMavenPom().getArtifactId()
|
||||||
remote.identityFile = kfIdentity
|
VERSION = readMavenPom().getVersion()
|
||||||
|
PACKAGING = readMavenPom(). getPackaging()
|
||||||
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
|
stages {
|
||||||
sshCommand remote: remote, command: "docker run -d -p 92:8080 --name ${containerName} ${imageName}",sudo: true
|
stage('maven build') {
|
||||||
}
|
agent {
|
||||||
}
|
docker {
|
||||||
}//end docker
|
image 'maven:3-alpine'
|
||||||
|
args '-v /root/.m2:/root/.m2'
|
||||||
//发送成功邮件
|
reuseNode true
|
||||||
emailext (
|
}
|
||||||
subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 更新正常",
|
}
|
||||||
body: """
|
steps {
|
||||||
详情:
|
sh 'mvn clean package -Dmaven.test.skip=true'
|
||||||
SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'
|
}
|
||||||
状态:${env.JOB_NAME} jenkins 更新运行正常
|
}
|
||||||
URL :${env.BUILD_URL}
|
|
||||||
项目名称 :${env.JOB_NAME}
|
stage('docker build And Push'){
|
||||||
项目更新进度:${env.BUILD_NUMBER}
|
steps {
|
||||||
""",
|
script{
|
||||||
to: "${mailto}",
|
docker.withRegistry("${env.dockerProtocol}://${env.dockerRegistry}", 'privateDockerId') {
|
||||||
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
|
docker.build("${env.dockerRegistry}/${env.GROUP}/${env.ARTIFACTID}:${env.VERSION}","--no-cache --build-arg JAR_FILE=target/${env.ARTIFACTID}-${env.VERSION}.${env.PACKAGING} .").push()
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
catch(e)
|
}
|
||||||
{
|
}
|
||||||
emailext (
|
|
||||||
subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 更新失败",
|
|
||||||
body: """
|
stage('deploy') {
|
||||||
详情:
|
steps {
|
||||||
FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'
|
withCredentials([sshUserPrivateKey(credentialsId: "${env.credentialsId}", keyFileVariable: 'kfIdentity', passphraseVariable: 'pVariable', usernameVariable: 'userName')]) {
|
||||||
状态:${env.JOB_NAME} jenkins 运行失败
|
sshCommand(remote: [ name: "${env.deployName}" ,host: "${env.deployHost}" ,allowAnyHosts: true,user: "${userName}",identityFile: "${kfIdentity}" ] ,
|
||||||
URL :${env.BUILD_URL}
|
command: "docker stop ${env.containerName}",sudo: true ,failOnError: false)
|
||||||
项目名称 :${env.JOB_NAME}
|
sshCommand(remote: [ name: "${env.deployName}" ,host: "${env.deployHost}" ,allowAnyHosts: true,user: "${userName}",identityFile: "${kfIdentity}" ] ,
|
||||||
项目更新进度:${env.BUILD_NUMBER}
|
command: "docker rm ${env.containerName}",sudo: true ,failOnError: false)
|
||||||
""",
|
sshCommand(remote: [ name: "${env.deployName}" ,host: "${env.deployHost}" ,allowAnyHosts: true,user: "${userName}",identityFile: "${kfIdentity}" ] ,
|
||||||
to: "${mailto}",
|
command: "docker rmi ${env.dockerRegistry}/${env.GROUP}/${env.ARTIFACTID}:${env.VERSION}",sudo: true ,failOnError: false)
|
||||||
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
|
sshCommand(remote: [ name: "${env.deployName}" ,host: "${env.deployHost}" ,allowAnyHosts: true,user: "${userName}",identityFile: "${kfIdentity}" ] ,
|
||||||
)
|
command: "docker run -d -p ${env.export}:8080 --name ${env.containerName} ${env.dockerRegistry}/${env.GROUP}/${env.ARTIFACTID}:${env.VERSION}",sudo: true ,failOnError: true)
|
||||||
throw e
|
}
|
||||||
}//end catch
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
post {
|
||||||
|
success {
|
||||||
|
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: "${env.mailto}",
|
||||||
|
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
failure {
|
||||||
|
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: "${env.mailto}",
|
||||||
|
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user