Files
SHS/Jenkinsfile
2020-04-20 13:03:11 +00:00

96 lines
2.9 KiB
Groovy

pipeline {
environment {
JOBS_COUNT = 4
}
agent {
docker { image 'libs' }
}
stages {
stage('Build') {
parallel {
stage('Linux') {
steps {
echo 'build Linux'
sh "mkdir -p build/linux"
sh "cd build/linux && rm -rf ./* && cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} ../../src"
sh "cd build/linux && make -j${JOBS_COUNT}"
sh "cd build/linux && make install -j${JOBS_COUNT}"
sh "cd build/linux && make deploy"
archiveArtifacts 'release/Linux/*/*.deb'
}
}
stage('Windows') {
steps {
echo 'build Windows'
sh "mkdir -p build/windows"
sh "cd build/windows && rm -rf ./* && cmake -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Windows.cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} ../../src"
sh "cd build/windows && make -j${JOBS_COUNT}"
sh "cd build/windows && make install -j${JOBS_COUNT}"
sh "cd build/windows && make deploy"
archiveArtifacts 'release/Windows/*/*.zip'
}
}
stage('MacOS') {
steps {
echo 'build MacOS'
sh "mkdir -p build/osx"
sh "cd build/osx && rm -rf ./* && cmake -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Darwin.cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} ../../src"
sh "cd build/osx && make -j${JOBS_COUNT}"
sh "cd build/osx && make install -j${JOBS_COUNT}"
sh "cd build/osx && make deploy"
sh "cd release/Darwin/* && zip -9 `ls | grep dmg`.zip `ls | grep dmg`"
archiveArtifacts 'release/Darwin/*/*.zip'
}
}
}
}
stage('Build Android') {
environment {
NDK_PLATFORM = 'android-21'
ANDROID_TOOLCHAIN = '/usr/lib/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake'
}
steps {
echo 'build Android'
script {
sh "mkdir -p build/android"
def archs = ['armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64']
for (int i = 0; i < archs.size(); ++i) {
echo 'build Android ${archs[i]}'
sh "cd build/android && rm -rf ./CMake*"
sh "cd build/android && cmake -DCMAKE_TOOLCHAIN_FILE=${ANDROID_TOOLCHAIN} -DANDROID_PLATFORM=${NDK_PLATFORM} -DANDROID_ABI=${archs[i]} -DCMAKE_INSTALL_PREFIX=/soft/android/${archs[i]} -DQt5_DIR=/soft/android/qt/lib/cmake/Qt5 -DBUILD_NUMBER=${env.BUILD_NUMBER} ../../src"
sh "cd build/android && make install -j${JOBS_COUNT}"
}
sh "cd build/android && make deploy"
archiveArtifacts 'release/Android/*.apk'
}
//sh 'cd build/osx && make -j${JOBS_COUNT}'
}
}
/*stage('Build Android') {
matrix {
axes {
axis {
name 'ARCH'
values 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
stages {
stage('Build Android ${ARCH}') {
steps {
sh 'mkdir -p build/android'
echo "build Android ${ARCH}"
}
}
}
}
}*/
}
post {
always {
echo 'clean'
//sh "cd build && rm -rf ./*"
//sh "cd release && rm -rf ./*"
//sh "cd bin && rm -rf ./*"
}
}
}