This repository was archived by the owner on Nov 6, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathJenkinsfile
91 lines (80 loc) · 2.03 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
pipeline {
agent any
stages {
stage("Clean") {
steps {
sh "./gradlew clean"
}
}
stage("Build") {
steps {
sh "./gradlew bootJar --info --stacktrace"
}
}
stage("Test") {
steps {
sh "./gradlew check"
}
}
stage('Build Docker Image') {
when {
anyOf {
branch "master*"
}
}
steps {
sh "./gradlew buildDockerImage"
}
}
stage('Publish Docker Image') {
when {
anyOf {
branch "master*"
}
}
steps {
sh "./gradlew pushDockerImage"
}
}
stage('Deploy via Ansible Tower') {
when {
anyOf {
branch "master*"
}
}
steps {
script {
image=getImageWithTagFromFile()
echo "image=${image}"
}
ansibleTower(
towerServer: 'Production ansible tower',
templateType: 'job',
jobTemplate: 'Deploy compose stack on Docker Swarm',
importTowerLogs: true,
removeColor: false,
verbose: true,
extraVars: """---
app_name: start
customer: xenit
checkout_repo: '${env.GIT_URL}'
env: '${env.GIT_BRANCH}'
branch: '${env.GIT_BRANCH}'
swarm_manager: 'nphosting-02'
include_monitoring: false
docker_compose_path: 'start.xenit.eu'
docker_compose_files: ['docker-compose.yml']
docker_compose_env_variables: {'DOCKER_IMAGE': '${image}'}"""
)
}
}
}
post {
always {
junit '**/build/test-results/**/*.xml'
}
}
}
def getImageWithTagFromFile() {
return readFile("tag.txt")
}