diff --git a/Jenkinsfile.save b/Jenkinsfile.save new file mode 100644 index 0000000..c73ce36 --- /dev/null +++ b/Jenkinsfile.save @@ -0,0 +1,209 @@ +`pipeline { + agent any + + parameters { + booleanParam(defaultValue: false, description: 'Enabled/disables the building of an optimized build', name: 'build_optimized') + booleanParam(defaultValue: true, description: 'Build the libraries as well', name: 'build_libraries') + booleanParam(defaultValue: true, description: 'Deploy this build', name: 'deploy_build') + choice(choices: ['all', 'x86_debug', 'x64_debug', 'x64_release'], description: 'Which target do you want to build?', name: 'target') + } + + environment { + //General flags + CXX_FLAGS = '' + C_FLAGS = '' + + //CMake specific flags + CMAKE_OPTIONS = '' + CMAKE_MAKE_OPTIONS = '-j 12' + + //Make specific flags + MAKE_OPTIONS = '-j 12' + } + + stages { + stage ('build') { + parallel { + stage ('build::x86::debug') { + agent { + label 'linux && x84 && teaspeak' + } + when { + expression { params.target == "" || params.target == "all" || params.target == "x86_debug" } + } + + stages { + stage ('build::x86::debug::libraries') { + stages { + stage ('build::x86::debug::libraries::update') { + steps { + sh 'git reset --hard origin/master; git submodule update --init --remote --recursive --force' + sh 'git submodule update --merge' + sh './attach_modules.sh' + } + } + + stage ('build::x86::debug::libraries::build') { + when { + expression { params.build_libraries } + } + + environment { + CMAKE_BUILD_TYPE="Debug" + } + + steps { + sh 'cd libraries; ./build.sh' + } + } + } + } + + + stage ('build::x86::debug') { + environment { + TEASPEAK_BUILD_TYPE="Debug" + } + environment { + CMAKE_BUILD_TYPE="Debug" + } + + stages { + stage ('build::x86::debug::build') { + 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' + } + } + } + } + } + } + + stage ('build::amd64::debug') { + agent { + label 'linux && amd64 && teaspeak' + } + when { + expression { params.target == "" || params.target == "all" || params.target == "x64_debug" } + } + + stages { + stage ('build::amd64::debug::libraries') { + stages { + stage ('build::amd64::debug::libraries::update') { + steps { + sh 'git reset --hard origin/master; git submodule update --init --remote --recursive --force' + sh 'git submodule update --merge' + sh './attach_modules.sh' + } + } + + stage ('build::amd64::debug::libraries::build') { + when { + expression { params.build_libraries } + } + + environment { + CMAKE_BUILD_TYPE="Debug" + } + + steps { + sh 'cd libraries; ./build.sh' + } + } + } + } + + stage ('build::amd64::debug::build') { + environment { + TEASPEAK_BUILD_TYPE="Debug" + CMAKE_BUILD_TYPE="Debug" + } + + 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' + } + } + } + } + + stage ('build::amd64::release::deploy') { + when { + expression { params.target == "all" || params.target == "x64_release" || params.build_optimized } + } + + agent { + label 'linux && amd64 && teaspeak' + } + + stages { + stage ('build::amd64::release::libraries') { + stages { + stage ('build::amd64::release::libraries::update') { + steps { + sh 'git reset --hard origin/master; git submodule update --init --remote --recursive --force' + sh 'git submodule update --merge' + sh './attach_modules.sh' + } + } + + stage ('build::amd64::release::libraries::build') { + when { + expression { params.build_libraries } + } + + environment { + CMAKE_BUILD_TYPE="RelWithDebInfo" + } + + steps { + sh 'cd libraries; ./build.sh' + } + } + } + } + + stage ('build::amd64::release::build') { + environment { + TEASPEAK_BUILD_TYPE="Release" + CMAKE_BUILD_TYPE="RelWithDebInfo" + } + + 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' + } + } + } + } + } + } + } +} diff --git a/TeaSpeak b/TeaSpeak index 2c9b128..86b682d 160000 --- a/TeaSpeak +++ b/TeaSpeak @@ -1 +1 @@ -Subproject commit 2c9b128dfca34119d7898431af8a1e2c1e296b89 +Subproject commit 86b682dda54ac764211f6565b89b5179129bba14 diff --git a/libraries/DataPipes b/libraries/DataPipes index f44d650..849fec1 160000 --- a/libraries/DataPipes +++ b/libraries/DataPipes @@ -1 +1 @@ -Subproject commit f44d650b257b3caf242c835447fed7eb6577cc13 +Subproject commit 849fec151e8abb663fb1ffded6b65a70c33e595a diff --git a/libraries/boringssl b/libraries/boringssl index 1c337e5..fdb48f9 160000 --- a/libraries/boringssl +++ b/libraries/boringssl @@ -1 +1 @@ -Subproject commit 1c337e566d98a46798fe76c170c35e8c1a3ca6ea +Subproject commit fdb48f98612e934eab339b4871484b1c987553e2 diff --git a/libraries/build_boringssl.sh b/libraries/build_boringssl.sh index 817da25..327266b 100755 --- a/libraries/build_boringssl.sh +++ b/libraries/build_boringssl.sh @@ -13,6 +13,6 @@ if [ $? -ne 0 ]; then fi cd build sudo apt-get install golang-go -cmake .. -DOPENSSL_NO_ASM=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE="Release" -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" -DCMAKE_C_FLAGS="${C_FLAGS}" -DCMAKE_BUILD_TYPE=RelWithDebInfo ${CMAKE_OPTIONS} +cmake .. -D -DOPENSSL_NO_ASM=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS="${CXX_FLAGS} -fPIC" -DCMAKE_C_FLAGS="${C_FLAGS} -fPIC" -DCMAKE_BUILD_TYPE=Release ${CMAKE_OPTIONS} -DCMAKE_VERBOSE_MAKEFILE=1 make ${CMAKE_MAKE_OPTIONS} #sudo make install diff --git a/libraries/build_datapipes.sh b/libraries/build_datapipes.sh index 5edda74..4a71901 100755 --- a/libraries/build_datapipes.sh +++ b/libraries/build_datapipes.sh @@ -4,6 +4,6 @@ sudo apt-get install libnice-dev ./build_srtp.sh ./build_sdptransform.sh cd build -cmake .. -DCMAKE_CXX_FLAGS="-I../../boringssl/include/ -DUSE_BORINGSSL -static-libgcc -static-libstdc++ ${CXX_FLAGS}" -DBUILD_TESTS=OFF -DCMAKE_C_FLAGS="${C_FLAGS}" -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" ${CMAKE_OPTIONS} +cmake .. -DCrypto_ROOT_DIR="../../boringssl/" -DCRYPTO_TYPE="boringssl" -DCMAKE_CXX_FLAGS="-static-libgcc -static-libstdc++ ${CXX_FLAGS}" -DBUILD_TESTS=OFF -DCMAKE_C_FLAGS="${C_FLAGS}" -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" ${CMAKE_OPTIONS} make ${CMAKE_MAKE_OPTIONS} sudo make install