2018-08-08 21:53:18 +02:00
pipeline {
2019-10-13 19:35:01 +02:00
agent any
2018-11-01 16:16:06 +01:00
parameters {
2018-11-01 16:28:05 +01:00
booleanParam ( defaultValue: true , description: 'Deploy this build' , name: 'deploy_build' )
2020-01-27 02:23:17 +01:00
choice ( choices: [ 'none' , 'x86_debug' , 'x86_release' , 'x86_stable' , 'amd64_debug' , 'amd64_release' , 'amd64_stable' , 'arm32v7_debug' , 'arm32v7_release' , 'arm32v7_stable' ] , description: 'Which target do you want to build?' , name: 'target' )
2018-11-01 16:16:06 +01:00
}
2018-11-01 16:42:08 +01:00
2020-01-27 02:23:17 +01:00
environment {
//CMake specific flags
CMAKE_OPTIONS = ''
CMAKE_MAKE_OPTIONS = '-j32'
2018-11-01 16:42:08 +01:00
2020-01-27 02:23:17 +01:00
//Make specific flags
MAKE_OPTIONS = '-j32'
JENKINS_BUILD_TARGET = "${params.target}"
}
stages {
/* build all amd64 stuff */
stage ( 'build::amd64' ) {
agent {
label 'linux && amd64 && teaspeak'
}
when {
expression { params . target = = "amd64_debug" | | params . target = = "amd64_release" | | params . target = = "amd64_stable" }
}
environment {
build_os_type = "linux"
build_os_arch = "amd64"
}
stages {
stage ( 'build::amd64::libraries' ) {
environment {
CMAKE_BUILD_TYPE = "RelWithDebInfo" /* we build out libraries every time in release mode! (Performance improve) */
}
steps {
sh './attach_modules.sh'
sh 'cd libraries; ./build.sh'
}
}
stage ( 'build::amd64::debug' ) {
when {
expression { params . target = = "amd64_debug" }
}
stages {
stage ( 'build::amd64::debug::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Debug"
CMAKE_BUILD_TYPE = "Debug"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=1 -DBUILD_TYPE_NAME='beta'"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::amd64::debug::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64_debug'
}
}
}
}
stage ( 'build::amd64::release' ) {
when {
expression { params . target = = "amd64_release" }
}
stages {
stage ( 'build::amd64::release::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Release"
CMAKE_BUILD_TYPE = "RelWithDebInfo"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=1 -DBUILD_TYPE_NAME='beta'"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::amd64::release::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64_optimized'
}
}
}
}
stage ( 'build::amd64::stable' ) {
when {
expression { params . target = = "amd64_stable" }
}
stages {
stage ( 'build::amd64::stable::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Release"
CMAKE_BUILD_TYPE = "RelWithDebInfo"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=0 -DBUILD_TYPE_NAME=''"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::amd64::stable::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64_stable'
}
}
}
}
}
}
/* build all x86 stuff */
stage ( 'build::x86' ) {
agent {
label 'linux && x86 && teaspeak'
}
when {
expression { params . target = = "x86_debug" | | params . target = = "x86_release" | | params . target = = "x86_stable" }
}
environment {
build_os_type = "linux"
build_os_arch = "x86"
}
stages {
stage ( 'build::x86::libraries' ) {
environment {
CMAKE_BUILD_TYPE = "RelWithDebInfo" /* we build out libraries every time in release mode! (Performance improve) */
BUILD_ARCH_TARGET = "x86"
}
steps {
sh './attach_modules.sh'
sh 'cd libraries; ./build.sh'
}
}
stage ( 'build::x86::debug' ) {
when {
expression { params . target = = "x86_debug" }
}
stages {
stage ( 'build::x86::debug::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Debug"
CMAKE_BUILD_TYPE = "Debug"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=1 -DBUILD_TYPE_NAME='beta'"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::x86::debug::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/x86_debug'
}
}
}
}
stage ( 'build::x86::release' ) {
when {
expression { params . target = = "x86_release" }
}
stages {
stage ( 'build::x86::release::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Release"
CMAKE_BUILD_TYPE = "RelWithDebInfo"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=1 -DBUILD_TYPE_NAME='beta'"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::x86::release::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/x86_optimized'
}
}
}
}
stage ( 'build::x86::stable' ) {
when {
expression { params . target = = "x86_stable" }
}
stages {
stage ( 'build::x86::stable::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Release"
CMAKE_BUILD_TYPE = "RelWithDebInfo"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=0 -DBUILD_TYPE_NAME=''"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::x86::stable::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/x86_stable'
}
}
}
}
}
}
/* build all arm32v7 stuff */
stage ( 'build::arm32v7' ) {
agent {
label 'linux && arm32v7 && teaspeak'
}
when {
expression { params . target = = "arm32v7_debug" | | params . target = = "arm32v7_release" | | params . target = = "arm32v7_stable" }
}
environment {
build_os_type = "linux"
build_os_arch = "arm32v7"
}
stages {
stage ( 'build::arm32v7::libraries' ) {
environment {
CMAKE_BUILD_TYPE = "RelWithDebInfo" /* we build out libraries every time in release mode! (Performance improve) */
}
steps {
sh './attach_modules.sh'
sh 'cd libraries; ./build.sh'
}
}
stage ( 'build::arm32v7::debug' ) {
when {
expression { params . target = = "arm32v7_debug" }
}
stages {
stage ( 'build::amd64::debug::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Debug"
CMAKE_BUILD_TYPE = "Debug"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=1 -DBUILD_TYPE_NAME='beta'"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::amd64::debug::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/arm32v7_debug'
}
}
}
}
stage ( 'build::arm32v7::release' ) {
when {
expression { params . target = = "arm32v7_release" }
}
stages {
stage ( 'build::arm32v7::release::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Release"
CMAKE_BUILD_TYPE = "RelWithDebInfo"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=1 -DBUILD_TYPE_NAME='beta'"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::arm32v7::release::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/arm32v7_optimized'
}
}
}
}
stage ( 'build::arm32v7::stable' ) {
when {
expression { params . target = = "arm32v7_stable" }
}
stages {
stage ( 'build::arm32v7::stable::build' ) {
environment {
TEASPEAK_BUILD_TYPE = "Release"
CMAKE_BUILD_TYPE = "RelWithDebInfo"
TEASPEAK_DEPLOY_TYPE_SPECIFIER = "-DBUILD_TYPE=0 -DBUILD_TYPE_NAME=''"
}
steps {
sh './build_teaspeak.sh'
}
}
stage ( 'build::arm32v7::stable::deploy' ) {
when {
expression { params . deploy_build }
}
steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/arm32v7_stable'
}
}
}
}
}
}
}
2018-08-08 21:53:18 +02:00
}