Updated Jenkinsfile

This commit is contained in:
WolverinDEV 2020-01-27 10:49:36 +01:00
parent 5be74c5b06
commit 35cc84f7ee
2 changed files with 169 additions and 369 deletions

272
Jenkinsfile vendored
View File

@ -3,7 +3,10 @@ pipeline {
parameters { parameters {
booleanParam(defaultValue: true, description: 'Deploy this build', name: 'deploy_build') booleanParam(defaultValue: true, description: 'Deploy this build', name: 'deploy_build')
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') booleanParam(name: 'build_amd64', defaultValue: false, description: 'Build for amd64')
booleanParam(name: 'build_arm32v7', defaultValue: false, description: 'Build for arm32v7')
booleanParam(name: 'build_x86', defaultValue: false, description: 'Build for x86')
choice(choices: ['none', 'debug', 'optimized', 'stable'], description: 'What kind of build do you want to run?', name: 'build_type')
} }
environment { environment {
@ -13,8 +16,6 @@ pipeline {
//Make specific flags //Make specific flags
MAKE_OPTIONS = '-j32' MAKE_OPTIONS = '-j32'
JENKINS_BUILD_TARGET="${params.target}"
} }
stages { stages {
@ -23,8 +24,9 @@ pipeline {
agent { agent {
label 'linux && amd64 && teaspeak' label 'linux && amd64 && teaspeak'
} }
when { when {
expression { params.target == "amd64_debug" || params.target == "amd64_release" || params.target == "amd64_stable" } expression { params.build_amd64 }
} }
environment { environment {
@ -45,96 +47,19 @@ pipeline {
} }
stage ('build::amd64::debug') { stage ('build::amd64::build') {
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 { steps {
sh './build_teaspeak.sh' sh "./build_teaspeak.sh ${params.build_type}"
} }
} }
stage ('build::amd64::debug::deploy') { stage ('build::amd64::deploy') {
when { when {
expression { params.deploy_build } expression { params.deploy_build }
} }
steps { steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64_debug' sh "cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/amd64_${params.build_type}"
}
}
}
}
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'
}
}
} }
} }
} }
@ -145,8 +70,9 @@ pipeline {
agent { agent {
label 'linux && x86 && teaspeak' label 'linux && x86 && teaspeak'
} }
when { when {
expression { params.target == "x86_debug" || params.target == "x86_release" || params.target == "x86_stable" } expression { params.build_x86 }
} }
environment { environment {
@ -158,7 +84,6 @@ pipeline {
stage ('build::x86::libraries') { stage ('build::x86::libraries') {
environment { environment {
CMAKE_BUILD_TYPE="RelWithDebInfo" /* we build out libraries every time in release mode! (Performance improve) */ CMAKE_BUILD_TYPE="RelWithDebInfo" /* we build out libraries every time in release mode! (Performance improve) */
BUILD_ARCH_TARGET="x86"
} }
steps { steps {
@ -168,96 +93,19 @@ pipeline {
} }
stage ('build::x86::debug') { stage ('build::x86::build') {
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 { steps {
sh './build_teaspeak.sh' sh "./build_teaspeak.sh ${params.build_type}"
} }
} }
stage ('build::x86::debug::deploy') { stage ('build::x86::deploy') {
when { when {
expression { params.deploy_build } expression { params.deploy_build }
} }
steps { steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/x86_debug' sh "cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/x86_${BUILD_TYPE}"
}
}
}
}
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'
}
}
} }
} }
} }
@ -268,8 +116,9 @@ pipeline {
agent { agent {
label 'linux && arm32v7 && teaspeak' label 'linux && arm32v7 && teaspeak'
} }
when { when {
expression { params.target == "arm32v7_debug" || params.target == "arm32v7_release" || params.target == "arm32v7_stable" } expression { params.build_arm32v7 }
} }
environment { environment {
@ -290,96 +139,19 @@ pipeline {
} }
stage ('build::arm32v7::debug') { stage ('build::arm32v7::build') {
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 { steps {
sh './build_teaspeak.sh' sh "./build_teaspeak.sh ${params.build_type}"
} }
} }
stage ('build::amd64::debug::deploy') { stage ('build::arm32v7::deploy') {
when { when {
expression { params.deploy_build } expression { params.deploy_build }
} }
steps { steps {
sh 'cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/arm32v7_debug' sh "cd TeaSpeak/server/repro/; chmod 400 build_private_key; ./build.sh linux/arm32v7_${BUILD_TYPE}"
}
}
}
}
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'
}
}
} }
} }
} }

View File

@ -1,6 +1,33 @@
#!/bin/bash #!/bin/bash
_build_helper_dir="$(pwd)/build-helpers" _build_helper_dir="$(pwd)/build-helpers"
_build_type="Debug"
if [[ -n "$1" ]]; then
echo "This is an automated jenkins build. Initializing variables."
if [[ "$1" == "debug" ]]; then
echo "Initializing debug session."
export _build_type="Debug"
# shellcheck disable=SC2089
export TEASPEAK_DEPLOY_TYPE_SPECIFIER="-DBUILD_TYPE=1 -DBUILD_TYPE_NAME=\"beta\""
elif [[ "$1" == "optimized" ]]; then
echo "Initializing optimized session."
export _build_type="RelWithDebInfo"
# shellcheck disable=SC2089
export TEASPEAK_DEPLOY_TYPE_SPECIFIER="-DBUILD_TYPE=1 -DBUILD_TYPE_NAME=\"beta\""
elif [[ "$1" == "stable" ]]; then
echo "Initializing stable session."
export _build_type="RelWithDebInfo"
# shellcheck disable=SC2089
export TEASPEAK_DEPLOY_TYPE_SPECIFIER="-DBUILD_TYPE=0 -DBUILD_TYPE_NAME=\"\""
else
echo "Unknown target build type: $1"
exit 1
fi
fi
# shellcheck disable=SC2154 # shellcheck disable=SC2154
if [[ "$no_web" == "1" ]]; then if [[ "$no_web" == "1" ]]; then
echo "Disabling web support" echo "Disabling web support"
@ -10,13 +37,14 @@ else
fi fi
cd TeaSpeak || exit 1 cd TeaSpeak || exit 1
if [ -d build ]; then if [[ -d build ]]; then
rm -r build rm -r build
fi fi
mkdir build && cd build || exit 1 mkdir build || exit 1
cd build || exit 1
echo "Build type: ${TEASPEAK_BUILD_TYPE}" echo "Build type: $_build_type"
cmake .. -DCMAKE_BUILD_TYPE="${TEASPEAK_BUILD_TYPE}" -DCMAKE_CXX_FLAGS=" ${CXX_FLAGS}" -DBUILD_INCLUDE_FILE="$_build_helper_dir"/cmake/config/tearoot-server.cmake -DCMAKE_MODULE_PATH="$_build_helper_dir"/cmake/ -DDISABLE_QT=1 -DDISABLE_CUSTOM_OUTPUT=ON -DDISABLE_QT=ON -DCOMPILE_WEB_CLIENT="$_web_flag" $TEASPEAK_DEPLOY_TYPE_SPECIFIER cmake .. -DCMAKE_BUILD_TYPE="$_build_type" -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" -DBUILD_INCLUDE_FILE="$_build_helper_dir"/cmake/config/tearoot-server.cmake -DCMAKE_MODULE_PATH="$_build_helper_dir"/cmake/ -DDISABLE_QT=1 -DDISABLE_CUSTOM_OUTPUT=ON -DDISABLE_QT=ON -DCOMPILE_WEB_CLIENT="$_web_flag" $TEASPEAK_DEPLOY_TYPE_SPECIFIER
_code=$? _code=$?
if [[ $_code -ne 0 ]]; then if [[ $_code -ne 0 ]]; then
echo "Failed to run CMAKE project" echo "Failed to run CMAKE project"