Server-Root/Jenkinsfile

164 lines
3.5 KiB
Plaintext
Raw Normal View History

2018-08-08 21:53:18 +02:00
pipeline {
2018-08-09 21:57:58 +02:00
agent any
2018-11-01 16:16:06 +01:00
parameters {
booleanParam(defaultValue: true, description: 'Enabled/disables the building of an optimized build', name: 'build_optimized')
2018-11-01 16:22:28 +01:00
booleanParam(defaultValue: true, description: 'Build the libraries as well', name: 'build_libraries')
2018-11-01 16:28:05 +01:00
booleanParam(defaultValue: true, description: 'Deploy this build', name: 'deploy_build')
2018-11-01 16:16:06 +01:00
}
2018-08-09 21:57:58 +02:00
2018-08-09 21:58:53 +02:00
stages {
2018-08-09 21:59:22 +02:00
stage ('build') {
2018-08-09 21:57:58 +02:00
parallel {
stage ('x86') {
agent {
label 'linux && x84 && teaspeak'
}
environment {
//General flags
CXX_FLAGS = ''
C_FLAGS = ''
//CMake specific flags
CMAKE_OPTIONS = ''
2018-08-11 11:42:09 +02:00
CMAKE_MAKE_OPTIONS = '-j 12'
2018-08-09 21:57:58 +02:00
//Make specific flags
2018-08-25 16:42:06 +02:00
MAKE_OPTIONS = '-j 12'
2018-08-09 21:57:58 +02:00
}
stages {
stage ('Initialize libraries') {
2018-11-01 16:35:37 +01:00
when {
expression { params.build_libraries }
}
2018-08-09 21:57:58 +02:00
steps {
sh 'apt-get update'
2018-08-11 11:39:50 +02:00
sh 'git reset --hard origin/master; git submodule update --init --remote --recursive --force'
2018-08-09 21:57:58 +02:00
sh 'git submodule update --merge'
sh './attach_modules.sh'
sh 'cd libraries; ./build.sh'
}
}
2018-11-01 16:35:37 +01:00
stage ('Build TeaSpeak Debug') {
2018-11-01 16:16:06 +01:00
environment {
TEASPEAK_BUILD_TYPE="Debug"
}
2018-11-01 16:35:37 +01:00
stages {
stage ('build') {
steps {
sh './build_teaspeak.sh'
}
}
stage ('deploy') {
when {
expression { params.deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/x86'
}
}
2018-08-09 21:57:58 +02:00
}
}
}
}
stage ('amd64') {
agent {
label 'linux && amd64 && teaspeak'
}
environment {
//General flags
CXX_FLAGS = ''
C_FLAGS = ''
//CMake specific flags
CMAKE_OPTIONS = ''
2018-08-11 11:42:09 +02:00
CMAKE_MAKE_OPTIONS = '-j 12'
2018-08-09 21:57:58 +02:00
//Make specific flags
2018-08-25 16:42:06 +02:00
MAKE_OPTIONS = '-j 12'
2018-08-09 21:57:58 +02:00
}
stages {
stage ('Initialize libraries') {
2018-11-01 16:22:28 +01:00
when {
expression { params.build_libraries }
}
2018-08-09 21:57:58 +02:00
steps {
sh 'apt-get update'
2018-08-11 11:39:50 +02:00
sh 'git reset --hard origin/master; git submodule update --init --remote --recursive --force'
2018-08-09 21:57:58 +02:00
sh 'git submodule update --merge'
sh './attach_modules.sh'
sh 'cd libraries; ./build.sh'
}
}
2018-11-01 16:16:06 +01:00
2018-11-01 16:35:37 +01:00
stage ('Build TeaSpeak') {
parallel {
stage ('Build TeaSpeak Debug') {
environment {
TEASPEAK_BUILD_TYPE="Debug"
2018-11-01 16:28:05 +01:00
}
2018-11-01 16:35:37 +01:00
stages {
stage ('build') {
steps {
sh './build_teaspeak.sh'
}
}
stage ('deploy') {
when {
expression { params.deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64'
}
}
2018-11-01 16:28:05 +01:00
}
}
2018-11-01 16:35:37 +01:00
stage ('Build TeaSpeak Release') {
2018-11-01 16:28:05 +01:00
when {
2018-11-01 16:35:37 +01:00
expression { params.build_optimized }
2018-11-01 16:28:05 +01:00
}
2018-11-01 16:35:37 +01:00
environment {
TEASPEAK_BUILD_TYPE="Release"
}
stages {
stage ('build') {
steps {
sh './build_teaspeak.sh'
}
}
stage ('deploy') {
when {
expression { params.deploy_build == true }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64_optimized'
}
}
2018-11-01 16:28:05 +01:00
}
}
2018-08-09 21:57:58 +02:00
}
}
}
}
2018-08-09 21:59:22 +02:00
}
2018-08-09 21:58:53 +02:00
}
}
2018-08-08 21:53:18 +02:00
}