-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathJenkinsfile_nightly
94 lines (91 loc) · 4.76 KB
/
Jenkinsfile_nightly
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
pipeline {
agent any
parameters {
choice(
choices: ['All' , 'Linux', 'MacOS', 'Windows'],
description: 'Choose OS to build',
name: 'OS')
}
options {
lock resource: 'terminal_lock'
}
stages {
stage('Build apps') {
parallel {
stage('Build Linux app') {
when {
expression { params.OS == 'Linux' || params.OS == 'All' }
}
agent {
docker {
image 'terminal:latest'
reuseNode true
args '-v /var/cache/3rd/downloads:${WORKSPACE}/3rd/downloads'
args '-v /var/cache/3rd/release_nightly:${WORKSPACE}/3rd/release'
}
}
steps {
sh "cd ./terminal && pip install requests"
sh "cd ./terminal && python generate.py ${L_ARGS}"
sh "cd ./terminal/terminal.release && make -j 4"
sh "cd ./terminal/Deploy && ./deploy.sh"
}
}
stage('Build MacOSX app') {
when {
expression { params.OS == 'MacOS' || params.OS == 'All' }
}
steps {
sh 'ssh ${MACOS_HOST_USER}@${MACOS_HOST_IP} "rm -rf ~/Workspace/terminal"'
sh 'ssh ${MACOS_HOST_USER}@${MACOS_HOST_IP} "mkdir -p ~/Workspace; cd ~/Workspace ; git clone --single-branch --branch bs_dev https://github.com/BlockSettle/terminal.git ; cd terminal ; git submodule init ; git submodule update ; cd common; git checkout bs_dev ; git pull ; git submodule init ; git submodule update"'
sh 'ssh ${MACOS_HOST_USER}@${MACOS_HOST_IP} "export PATH=/Users/${MACOS_HOST_USER}/.pyenv/shims:/usr/local/opt/ccache/libexec:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin; ccache -s ; cd /Users/${MACOS_HOST_USER}/Workspace/terminal/Deploy/MacOSX ; security unlock-keychain -p ${MAC_CHAIN_PAS} login.keychain ; ./package.sh"'
sh "scp ${MACOS_HOST_USER}@${MACOS_HOST_IP}:~/Workspace/terminal/Deploy/MacOSX/BlockSettle.dmg ${WORKSPACE}/terminal/Deploy/BlockSettle.dmg"
}
}
stage('Build Windows app') {
agent {
label 'windows'
}
when {
expression { params.OS == 'Windows' || params.OS == 'All' }
}
steps {
bat "cd terminal\\common && git checkout bs_dev && git pull && git submodule update"
bat 'set DEV_3RD_ROOT=C:\\Jenkins\\workspace\\3rd&& "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" && cd terminal && python generate.py release'
bat '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" && cd terminal\\terminal.release && devenv BS_Terminal.sln /build RelWithDebInfo"'
bat "cd terminal\\Deploy\\Windows\\ && deploy.bat"
}
}
}
}
stage('Transfer') {
parallel {
stage('Transfer Linux app') {
when {
expression { params.OS == 'Linux' || params.OS == 'All' }
}
steps {
sh "scp ${WORKSPACE}/terminal/Deploy/bsterminal.deb [email protected]:/var/www/terminal/Linux/bsterminal_bs_dev.deb"
}
}
stage('Transfer MacOS app') {
when {
expression { params.OS == 'MacOS' || params.OS == 'All' }
}
steps {
sh "scp ${WORKSPACE}/terminal/Deploy/BlockSettle.dmg [email protected]:/var/www/terminal/MacOSX/BlockSettle_bs_dev.dmg"
}
}
stage('Transfer Windows app') {
when {
expression { params.OS == 'Windows' || params.OS == 'All' }
}
steps {
sh 'scp -p2222 [email protected]:C:/Jenkins/workspace/terminal_nightly/terminal/Deploy/bsterminal_installer.exe ${WORKSPACE}/terminal/Deploy/bsterminal_installer.exe'
sh "scp ${WORKSPACE}/terminal/Deploy/bsterminal_installer.exe [email protected]:/var/www/terminal/Windows/bsterminal_installer_bs_dev.exe"
}
}
}
}
}
}