Files
SHS/Jenkinsfile
peri4 b8b9071e6e
Some checks failed
SHS Gitea/SHS/pipeline/head There was a failure building this commit
try build dockers
2023-11-19 15:20:34 +03:00

87 lines
3.3 KiB
Groovy

@Library('SHS.Platforms') _
properties([
copyArtifactPermission('*'),
buildDiscarder(logRotator(numToKeepStr: "10", artifactNumToKeepStr: "2"))
])
node {
stage("Download sources") {
checkout scm
sh 'rm -f docker/src.tar.gz'
sh 'tar -czf docker/src.tar.gz ./src'
}
def tag = env.BRANCH_NAME.substring(0, env.BRANCH_NAME.indexOf("_"))
if (tag == "")
error "Empty branch prefix!"
print "Building \"${tag}\" branch"
def pl = new org.SHS.Platforms(this)
pl.get()
def www_dir = "${env.SHSSDK_DIR}/${tag}"
sh "mkdir -p ${www_dir} || true"
writeJSON(file: "${www_dir}/platforms.json", json: pl.root())
def release_dir = sh(script: "pwd", returnStdout: true).trim() + '/release'
echo "Release to ${release_dir}"
sh "rm -rvf ${release_dir}"
sh "mkdir -p ${release_dir}"
sh "mkdir -p ${release_dir}/packages"
sh "mkdir -p ${release_dir}/sdk"
pl.forEach ({ dist, toolchain ->
def image_name = "${dist.docker_image}-shs-${tag}"
def sdk_zip_name = "SHSSDK_${tag}_${dist.docker_image}.zip"
def args = ""
for (arg in dist.docker_build_options) {
args += " --build-arg ${arg.key}=\"${arg.value}\""
}
args += " --build-arg IMAGE_FROM=${dist.docker_image}-shstk"
args += " --build-arg BUILD_NUMBER=${env.BUILD_NUMBER}"
args += " --build-arg TOOLCHAIN=${toolchain}"
args += " --build-arg JOBS_COUNT=${env.JOBS_COUNT}"
def shs_docker = docker.build("${image_name}", "./docker --no-cache ${args}")
shs_docker.inside("-v " + release_dir + ":/soft/release") {
sh 'cp -rvf /soft/SHS/release/* /soft/release/packages/ || true'
sh 'cp -rvf /soft/SHS/sdk/* /soft/release/sdk/ || true'
}
sh "cp -rvf ${release_dir}/* ${www_dir}/ || true"
sh "cd ${release_dir} && zip -r ${sdk_zip_name} sdk"
archiveArtifacts "${release_dir}/packages/*/*/*"
archiveArtifacts "${sdk_zip_name}"
}, blackList: ["android"])
//pl.forEach ({ dist, toolchain ->
// docker.image("${dist.docker_image}-shstk").inside() {
// sh "rm -rf ./release"
// sh "mkdir -p build"
// sh "cd build && rm -rf ./* && cmake -G Ninja ${toolchain} -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/*/*/*'
// sh 'rm -rf ./build ./bin ./release ./builds'
// }
//}, blackList: ["android"])
//def dist = pl.root().Platforms.Android;
//if (dist.enabled) {
// stage('Android') {
// docker.image("${dist.docker_image}-shstk").inside() {
// sh "rm -rf ./release"
// sh "mkdir -p build"
// for (arch in ['armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64']) {
// echo 'build Android ${arch}'
// sh "cd build && rm -rf ./CMake*"
// sh "cd build && cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=${dist.cmake_toolchain} -DANDROID_PLATFORM=${dist.docker_build_options.NDK_PLATFORM} -DANDROID_ABI=${arch} -DCMAKE_INSTALL_PREFIX=/soft/android/${arch} -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'
// }
// }
//}
}