-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathJenkinsfile
84 lines (71 loc) · 2.22 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
def extWorkspace = exwsAllocate 'sharedWorkspace'
node('Linux && NodeJS && sharedworkspace') {
exws (extWorkspace) {
stage ('Checkout from GitHub') {
checkout scm
}
stage ('Update npm modules') {
sh 'npm i'
}
stage ('Build Ride') {
// Build RIDE for all platforms
sh './mk dist'
}
stage ('Dyalog Network Publish') {
// Copy built files to /devt/builds/ride/
sh './publish.sh'
}
}
}
stage ('Packaging') {
parallel (
"Linux Package" : {
node('Linux && NodeJS && sharedworkspace') {
exws (extWorkspace) {
sh './packagescripts/linux/packageLinux.sh'
}
}
},
"Mac Package" : {
node('MAC && sharedworkspace') {
exws (extWorkspace) {
sh './packagescripts/osx/packageOSX.sh'
}
}
},
"Windows Package" : {
node('Windows && WIX && sharedworkspace') {
exws (extWorkspace) {
bat 'packagescripts/windows/packageWindows.bat'
}
}
}
)
}
stage ('Copy Install Images') {
node('Linux && sharedworkspace && git') {
exws (extWorkspace) {
// Copy installer images to /devt/build/ride/
sh './copyinstallers.sh'
}
}
}
stage ('Upload to installers to Github') {
node('Linux && sharedworkspace && NodeJS') {
exws (extWorkspace) {
withCredentials([usernamePassword(credentialsId: '9f5481da-1a4d-4c5d-b400-cc2ee3a3ac2c', passwordVariable: 'GHTOKEN', usernameVariable: 'API')]) {
sh './GH-Release.sh'
}
}
}
}
node() {
stage ('Send Emails') {
step([
$class: 'Mailer',
notifyEveryUnstableBuild: true,
recipients: '[email protected]',
sendToIndividuals: true
])
}
}