Files
SHS/Jenkinsfile
2022-10-28 15:11:36 +03:00

161 lines
5.5 KiB
Groovy

pipeline {
agent none
options {
copyArtifactPermission('*')
buildDiscarder(logRotator(numToKeepStr: "10", artifactNumToKeepStr: "2"))
}
stages {
stage('Android') {
agent {
docker { image 'android-shstk' }
}
environment {
NDK_PLATFORM = 'android-21'
ANDROID_TOOLCHAIN = '/usr/lib/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake'
}
steps {
echo 'build Android'
script {
sh "rm -rf ./release"
sh "mkdir -p build"
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 && rm -rf ./CMake*"
sh "cd build && cmake -G Ninja -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} -DLIB=0 -DSHS_QT_VERSION=5 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
}
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Android/*.apk*'
archiveArtifacts 'release/Android/*.aab'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
}
stage('MacOS') {
agent {
docker { image 'osx-shstk' }
}
steps {
echo 'build MacOS'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Darwin.cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Darwin/*/*.zip*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
stage('Pi') {
agent {
docker { image 'pi-shstk' }
}
steps {
echo 'build MacOS'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Linux/*/*.deb*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
stage('Debian 10') {
agent {
docker { image 'debian-shstk' }
}
steps {
echo 'build Linux'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Linux/*/*.deb*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
stage('Debian 11') {
agent {
docker { image 'debian11-shstk' }
}
steps {
echo 'build Linux'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Linux/*/*.deb*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
stage('Ubuntu 20.04') {
agent {
docker { image 'ubuntu-shstk' }
}
steps {
echo 'build Linux'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Linux/*/*.deb*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
stage('Windows x64') {
agent {
docker { image 'windows-shstk' }
}
steps {
echo 'build Windows'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Windows.cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Windows/*/*.zip*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
stage('Windows x32') {
agent {
docker { image 'windows32-shstk' }
}
steps {
echo 'build Windows 32'
sh "rm -rf ./release"
sh "mkdir -p build"
sh "cd build && rm -rf ./* && cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-Windows32.cmake -DBUILD_NUMBER=${env.BUILD_NUMBER} -DSHS_QT_VERSION=5 -DLIB=0 ../src"
sh "cd build && cmake --build ./ --target install -j${env.JOBS_COUNT}"
sh "cd build && cmake --build ./ --target deploy -j${env.JOBS_COUNT}"
archiveArtifacts 'release/Windows/*/*.zip*'
sh 'rm -rf ./build ./bin ./release ./builds'
}
}
/*stage('Android') {
matrix {
axes {
axis {
name 'ARCH'
values 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
stages {
stage('Android ${ARCH}') {
steps {
sh 'mkdir -p build/android'
echo "build Android ${ARCH}"
}
}
}
}
}*/
}
}