Files
shstk/Jenkinsfile
peri4 a3380922a2
Some checks failed
SHS Gitea/shstk/pipeline/head Something is wrong with the build of this commit
pip, cd
2024-11-28 12:37:18 +03:00

65 lines
1.8 KiB
Groovy

@Library('SHS.Platforms') _
def build_docker(dist, release_dir, is_testing) {
def image_name = "${dist.docker_image}-shstk"
if (is_testing) {
image_name += "-test"
}
echo "Build image ${image_name}"
def args = ""
for (arg in dist.docker_build_options) {
args += " --build-arg ${arg.key}=\"${arg.value}\""
}
if (env.DOCKER_PREFIX) {
args += " --build-arg DOCKER_PREFIX=${env.DOCKER_PREFIX}/"
}
if (env.GIT_LOCAL_BRANCH) {
args += " --build-arg BRANCH=${env.GIT_LOCAL_BRANCH}"
}
args += " --build-arg IMAGE_FROM=${dist.docker_image}"
args += " --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER}"
args += " --build-arg JOBS_COUNT=${env.JOBS_COUNT}"
def shstk_docker = docker.build("${image_name}", "./docker/${dist.docker_dir}-shstk --no-cache ${args}")
shstk_docker.inside("-v " + release_dir + ":/soft/release") {
sh 'cp -vf /soft/shstk/release/* /soft/release/ || true'
}
return "\n - ${image_name}"
}
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '10', daysToKeepStr: '', numToKeepStr: '2000']], copyArtifactPermission('*')]);
node {
stage("Download SRC") {
checkout scm
}
def currentBranch = "${env.GIT_LOCAL_BRANCH}"
def is_testing = currentBranch.toLowerCase().contains("test")
def pl = new org.SHS.Platforms(this)
pl.get()
def local_release_dir = 'release'
if (is_testing) {
local_release_dir += '-test'
}
def rel_dir = sh(script: "pwd", returnStdout: true).trim() + '/' + local_release_dir
echo "Release to ${rel_dir}"
sh "rm -rvf ${rel_dir}"
sh "mkdir -p ${rel_dir}"
def _msg = "Built images:"
pl.forEach ({ dist ->
_msg += build_docker(dist, rel_dir, is_testing)
},
stageSuffix: "-shstk",
ondemand: true
)
stage("Clean") {
sh "docker system prune -f"
}
archiveArtifacts "${local_release_dir}/*"
echo "${_msg}"
}