2018-08-08 15:53:18 -04:00
|
|
|
pipeline {
|
2019-10-13 13:35:01 -04:00
|
|
|
agent any
|
2018-11-01 11:16:06 -04:00
|
|
|
|
|
|
|
parameters {
|
2018-11-01 11:28:05 -04:00
|
|
|
booleanParam(defaultValue: true, description: 'Deploy this build', name: 'deploy_build')
|
2020-01-26 20:23:17 -05: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 11:16:06 -04:00
|
|
|
}
|
2018-11-01 11:42:08 -04:00
|
|
|
|
2020-01-26 20:23:17 -05:00
|
|
|
environment {
|
|
|
|
//CMake specific flags
|
|
|
|
CMAKE_OPTIONS = ''
|
|
|
|
CMAKE_MAKE_OPTIONS = '-j32'
|
2018-11-01 11:42:08 -04:00
|
|
|
|
2020-01-26 20:23:17 -05: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 15:53:18 -04:00
|
|
|
}
|