-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathJenkinsfile
More file actions
63 lines (61 loc) · 1.8 KB
/
Jenkinsfile
File metadata and controls
63 lines (61 loc) · 1.8 KB
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
pipeline {
agent any
environment {
ID = "${env.GIT_BRANCH}-${env.BUILD_ID}";
}
stages {
stage('Set up and build') {
steps {
sh 'mkdir reports && chmod -R 777 reports'
sh 'docker-compose -p $ID build'
sh 'mkdir -p reports && chmod 777 reports'
}
}
stage('Run Django Tests') {
steps {
sh 'docker-compose -p $ID -f docker-compose.yml -f testing.yml run -T interfaceserver sh test.sh'
}
}
stage('Run React Tests') {
steps {
sh 'docker-compose -f docker-compose.yml -f testing.yml -p $ID run reactserver npm run test || true'
}
}
stage('Collect and Publish Reports') {
steps {
junit 'reports/junit.xml'
// junit 'reports/js-xunit.xml'
cobertura(autoUpdateHealth: true, failNoReports: true, failUnstable: true, coberturaReportFile: 'reports/coverage.xml')
}
}
stage('Publish Live') {
when {
branch 'master'
}
steps {
sh 'docker tag builder.mtab.ml:5000/stanford-quiz:$ID builder.mtab.ml:5000/stanford-quiz:latest'
sh 'docker push builder.mtab.ml:5000/stanford-quiz:latest'
}
}
stage('Publish to Development Server') {
when {
branch 'dev'
}
steps {
sh 'docker tag builder.mtab.ml:5000/stanford-quiz:$ID builder.mtab.ml:5000/stanford-quiz:dev'
sh 'docker push builder.mtab.ml:5000/stanford-quiz:dev'
}
}
}
post {
always {
sh 'docker-compose -f docker-compose.yml -f testing.yml down -v'
sh 'docker stop $(docker ps -qf "name=.*$ID.*") || true'
sh 'docker container prune -f'
sh 'docker rmi -f builder.mtab.ml:5000/stanford-quiz:$ID'
sh 'docker image prune -f'
sh 'docker volume prune -f'
sh 'docker network prune -f'
}
}
}