forked from ngageoint/opensphere
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
131 lines (112 loc) · 2.98 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
126
127
128
129
130
131
#!groovy
def err = null
class Global {
static def branchName = null
static def userName = null
static def projName = null
}
node(getLabel()) {
timestamps {
try {
initScmEnv()
stage('scm') {
try {
beforeCheckout()
} catch (NoSuchMethodError e) {
}
installPlugins(env.YARN_WORKSPACE_REPO)
dir('workspace') {
dir('opensphere') {
checkout scm
try {
afterCheckout()
} catch (NoSuchMethodError e) {
}
try {
this_version = sh(script: 'git describe --exact-match HEAD', returnStdout: true).trim()
} catch (e) {
this_version = sh(script: "echo '${env.BRANCH_NAME}-${env.BUILD_NUMBER}'", returnStdout: true).trim()
}
echo "${this_version}"
}
try {
installConfigs('opensphere')
} catch (NoSuchMethodError e) {
}
}
}
stage('yarn') {
yarnInstall()
}
dir('workspace/opensphere') {
stage('build') {
sh 'yarn run build'
}
stage('test') {
try {
test()
} catch (NoSuchMethodError e) {
}
}
/* stage('docs')
sh 'npm run compile:dossier'
stage('deploy-docs')
try {
deployDocs()
} catch (NoSuchMethodError e) {
} */
stage('package') {
try {
beforePackage()
} catch (NoSuchMethodError e) {
}
dir('dist') {
def specialCharRegex = /[\W_&&[^\s]]/
env.BRANCH_NAME = env.BRANCH_NAME ? env.BRANCH_NAME : 'master'
def branchZipName = env.BRANCH_NAME.replaceAll(specialCharRegex, '')
sh "zip -q -r opensphere-${branchZipName}-${env.BUILD_NUMBER}.zip opensphere"
try {
// newer
archiveArtifacts '*.zip'
} catch (NoSuchMethodError e) {
// older
archive '*.zip'
}
}
}
stage('deploy') {
try {
deploy('opensphere')
} catch (NoSuchMethodError e) {
error 'Please define "deploy" through a shared pipeline library for this network'
}
}
}
stage('publish') {
if (env.BRANCH_NAME == 'master') {
try {
npmPublish()
} catch (NoSuchMethodError e) {
error 'Please define "npmPublish" through a shared pipeline library for this network'
}
}
}
try {
onSuccess()
} catch (NoSuchMethodError e) {
}
} catch (e) {
currentBuild.result = 'FAILURE'
err = e
} finally {
try {
notifyBuild()
} catch (NoSuchMethodError e) {
error 'Please define "notifyBuild()" through a shared pipeline library for this network'
}
if (err) {
throw err
}
}
}
}