-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathJenkinsfile
78 lines (76 loc) Β· 2.92 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
pipeline {
environment {
repository = 'whoishu'
serverImageName = 'ssul-api'
frontImageName = 'ssul-front'
registryCredential = 'dockerhub-whoishu'
version = '0.1'
}
agent any
tools {nodejs "nodejs-16"}
stages {
stage("deploy for dev") {
when {
branch "develop"
}
stages {
stage('Build docker image'){
steps {
echo 'Build BE image'
sh 'docker build -t $serverImageName:$version ./server/'
sh 'docker tag $serverImageName:$version $repository/$serverImageName:$version'
echo 'Build FE image'
sh 'docker build -t $frontImageName:$version --build-arg REACT_APP_GITHUB_CI=dfd2f662e9fd50622ed5 --build-arg REACT_APP_GITHUB_CALLBACK_PATH=http://www.gaeinsa.kro.kr/auth/callback ./client/'
sh 'docker tag $frontImageName:$version $repository/$frontImageName:$version'
}
}
stage('Push docker images'){
steps {
withDockerRegistry([credentialsId: registryCredential, url: ""]){
sh 'docker push $repository/$serverImageName:$version'
sh 'docker push $repository/$frontImageName:$version'
}
}
}
stage('Clean docker image'){
steps {
sh 'docker rmi $serverImageName:$version'
sh 'docker rmi $frontImageName:$version'
}
}
stage('Run docker over SSH'){
steps {
sh "ssh -p 4781 -o StrictHostKeyChecking=no [email protected] 'docker pull $repository/$serverImageName:$version'"
sh "ssh -p 4781 -o StrictHostKeyChecking=no [email protected] 'docker pull $repository/$frontImageName:$version'"
sh "ssh -p 4781 -o StrictHostKeyChecking=no [email protected] 'cd /root/web32-SSUL && docker-compose up -d'"
}
}
}
}
stage("deploy for main") {
when {
branch "main"
}
steps {
echo "do deploy"
}
}
stage("ci test for PR"){
when {
branch "PR-*"
}
steps {
configFileProvider([
configFile(fileId: 'dotenvtest', variable:'dotenvFile')
]){
sh '''
cd server
cp $dotenvFile .env.test
npm install
npm run test
'''
}
}
}
}
}