-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
53 lines (50 loc) · 1.82 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
pipeline {
agent any
environment {
DOCKER_IMAGE_FULL_NAME = ''
}
parameters {
string(name: 'DOCKER_IMAGE_NAME', defaultValue: '', description: 'Docker镜像名,空为项目名', trim: true)
string(name: 'DOCKER_IMAGE_TAG', defaultValue: '', description: 'Docker镜像Tag,空为项目版本号', trim: true)
}
stages {
stage('Prepare') {
steps {
// 准备 docker 构建与部署的相关信息
String dockerImageName = "${DOCKER_IMAGE_NAME}"
String dockerImageTag = "${DOCKER_IMAGE_TAG}"
// 获取 Docker 镜像 短名
if (!dockerImageName) {
dockerImageName = sh(
script: "./mvnw help:evaluate -Dexpression=project.artifactId -q -DforceStdout",
returnStdout: true
).trim()
}
// 获取 Docker 镜像 tag
if (!dockerImageTag) {
dockerImageTag = sh(
script: "./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout",
returnStdout: true
).trim()
}
// 生成 Docker 镜像 全名
DOCKER_IMAGE_FULL_NAME = "echcz/${dockerImageName}:${dockerImageTag}"
}
}
stage('Build: Jar') {
steps {
sh './mvnw -DskipTests=true clean package'
}
}
stage('Build: Docker Image') {
steps {
sh "docker build -t ${DOCKER_IMAGE_FULL_NAME} ."
}
}
stage('Deploy: Docker run') {
steps {
sh "docker run -d -p 80:80 ${DOCKER_IMAGE_FULL_NAME}"
}
}
}
}