-
Notifications
You must be signed in to change notification settings - Fork 18
/
Jenkinsfile
99 lines (99 loc) · 2.41 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
pipeline {
agent {
label "docker-agent"
}
environment {
REGISTRY_AUTH = credentials('eec0f0c2-9b9d-4b26-8da5-58222499d901')
DOTENV_PATH = credentials('unchained-dotenv')
kitchensink = ''
docs = ''
}
tools { dockerTool "docker" }
stages {
stage('Test') {
steps {
script {
// sh 'cp ${DOTENV_PATH} ./env'
docker.build("ci:latest")
sh 'docker run ci:latest npm run lint:ci'
sh 'docker run -t ci:latest sh -c "npm run test:unit || :"'
sh 'docker run -t ci:latest sh -c "npm run test:integration || :"'
}
}
}
stage('Login to Registry') {
steps {
script {
sh 'docker login -u ${REGISTRY_AUTH_USR} -p ${REGISTRY_AUTH_PSW} registry.ucc.dev'
}
}
}
stage('Build') {
parallel {
stage('Example: Kitchensink') {
stages {
stage('Building') {
steps{
script {
kitchensink = docker.build("registry.ucc.dev/unchained/kitchensink","-f ./examples/kitchensink/Dockerfile ./examples/kitchensink")
}
}
}
stage('Pushing to Registry') {
steps {
script {
kitchensink.push("${GIT_BRANCH}-latest")
}
}
}
}
}
stage('Documentation') {
stages {
stage('Building') {
steps{
script {
docs = docker.build("registry.ucc.dev/unchained/docs",'-f ./docs/Dockerfile ./docs')
}
}
}
stage('Pushing to Registry') {
steps {
script {
docs.push("${GIT_BRANCH}-latest")
}
}
}
}
}
}
}
stage('Deploy to Test') {
when { branch 'develop' }
steps {
script {
kitchensink.push("next")
docs.push("next")
}
}
}
stage('Deploy to Stage') {
when { branch 'master' }
steps {
script {
kitchensink.push("latest")
docs.push("latest")
}
}
}
stage('Deploy to Unchained Cloud') {
when { buildingTag() }
steps {
script {
kitchensink.push("stable")
docs.push("stable")
}
}
}
}
}