-
Notifications
You must be signed in to change notification settings - Fork 2
/
Jenkinsfile
125 lines (116 loc) · 3.14 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
pipeline {
agent any
stages {
// stage('Debug Info') {
// steps {
// sh 'whoami;hostname;uptime'
// }
// }
// stage('Build Docker Image') {
// steps {
// sh '''cd tumblr-replica;
// docker build . \\
// -f Dockerfile \\
// -t tumbler-react'''
// }
// }
// stage('Run Container') {
// steps {
// sh '''docker run \\
// --name tumbler-react \\
// --entrypoint /bin/sh \\
// -dt --rm tumbler-react'''
// }
// }
// stage('Lint') {
// steps {
// sh 'docker exec tumbler-react sh -c \'sh lint.sh\''
// }
// }
// stage('Test') {
// steps {
// sh 'docker exec tumbler-react sh -c \'sh test.sh\''
// }
// }
// stage('Stop Container & Remove Image') {
// steps {
// sh 'docker container stop tumbler-react'
// sh 'docker image remove tumbler-react'
// sh 'docker system prune -f'
// }
// }
// stage('List Docker Images & Containers') {
// steps {
// sh 'docker image ls -a'
// sh 'docker container ls -a'
// }
// }
stage('Deploy To dev-server') {
agent {
node {
label 'dev-server'
}
}
when {
branch 'dev'
}
steps {
sh 'whoami;hostname;uptime'
sh '''cd tumblr-replica;
#az storage file download --account-name tumblerstorageaccount -s tumbler-secrets -p frontend.dev.env --dest .env;
docker-compose -f docker-compose.dev.yml up -d --build;
#docker system prune -f;'''
build job: "/Testing/main", wait: false
}
post {
always {
discordSend(
title: JOB_NAME,
link: env.BUILD_URL,
description: "${JOB_NAME} DEV Deployment Status: ${currentBuild.currentResult}",
result: currentBuild.currentResult,
thumbnail: 'https://i.dlpng.com/static/png/6378770_preview.png',
webhookURL: 'https://discord.com/api/webhooks/921772869782994994/mi4skhArIoT6heXWebPiWLn6Xc95rZgUqtW7qriBOYvnl0sTdfn16we7yPY-n-DJYRmH'
)
}
}
}
stage('Deploy To Production') {
agent {
node {
label 'prod-server'
}
}
when {
branch 'main'
}
steps {
sh 'whoami;hostname;uptime'
sh '''cd tumblr-replica; docker-compose up -d --build;'''
build job: "/Testing/main", wait: true
}
post {
always {
discordSend(
title: JOB_NAME,
link: env.BUILD_URL,
description: "${JOB_NAME} PROD Deployment Status: ${currentBuild.currentResult}",
result: currentBuild.currentResult,
thumbnail: 'https://i.dlpng.com/static/png/6378770_preview.png',
webhookURL: 'https://discord.com/api/webhooks/921772869782994994/mi4skhArIoT6heXWebPiWLn6Xc95rZgUqtW7qriBOYvnl0sTdfn16we7yPY-n-DJYRmH'
)
}
}
}
}
post {
unsuccessful {
sh 'docker container stop tumbler-react || true'
sh 'docker image remove tumbler-react || true'
sh 'docker system prune -f'
}
cleanup {
cleanWs()
}
}
}