Merge pull request 'master' (#179) from master into release
Some checks failed
SHS Gitea/shstk/pipeline/head There was a failure building this commit
Some checks failed
SHS Gitea/shstk/pipeline/head There was a failure building this commit
Reviewed-on: https://git.shs.tools/SHS/shstk/pulls/179
This commit was merged in pull request #179.
This commit is contained in:
64
Jenkinsfile
vendored
64
Jenkinsfile
vendored
@@ -1,68 +1,46 @@
|
||||
def build_docker(name, docker_dir, docker_image, release_dir) {
|
||||
def image_name = "${name}-shstk"
|
||||
def build_docker(docker_image, docker_dir, release_dir) {
|
||||
def image_name = "${docker_image}-shstk"
|
||||
echo "Build image ${image_name}"
|
||||
def pref = ""
|
||||
def args = ""
|
||||
if (env.DOCKER_PREFIX) {
|
||||
pref = "--build-arg DOCKER_PREFIX=${env.DOCKER_PREFIX}/"
|
||||
args += " --build-arg DOCKER_PREFIX=${env.DOCKER_PREFIX}/"
|
||||
}
|
||||
def jobs = 4
|
||||
if (env.JOBS_COUNT) {
|
||||
jobs = "${env.JOBS_COUNT}"
|
||||
}
|
||||
def args = "${pref}"
|
||||
args += " --build-arg IMAGE_FROM=${docker_image}"
|
||||
args += " --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER}"
|
||||
args += " --build-arg JOBS_COUNT=${jobs}"
|
||||
dir ("docker/${docker_dir}-shstk") {
|
||||
sh "docker build ${args} --no-cache -t ${image_name} ."
|
||||
def diargs = "-v " + release_dir + ":/soft/release"
|
||||
docker.image(image_name).inside(diargs) {
|
||||
args += " --build-arg JOBS_COUNT=${env.JOBS_COUNT}"
|
||||
def shstk_docker = docker.build(${image_name}, ./docker/${docker_dir}-shstk --no-cache ${args})
|
||||
def vol = "-v " + release_dir + ":/soft/release"
|
||||
shstk_docker.inside(vol) {
|
||||
sh 'cp -vf /soft/shstk/release/* /soft/release/ || true'
|
||||
}
|
||||
//print "docker build ${args} --no-cache -t ${image_name} ."
|
||||
}
|
||||
return "\n - ${image_name}"
|
||||
}
|
||||
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '10', daysToKeepStr: '', numToKeepStr: '20']], copyArtifactPermission('*')]);
|
||||
node {
|
||||
stage("checkout") {
|
||||
stage("Download SRC") {
|
||||
checkout scm
|
||||
}
|
||||
|
||||
stage("Download platforms.json") {
|
||||
sh "rm -rf platforms"
|
||||
sh "git clone --depth 1 ${env.PLATFORMS_GIT} platforms"
|
||||
}
|
||||
|
||||
def rel_dir = sh(script: "pwd", returnStdout: true).trim() + '/release'
|
||||
echo "Release to ${rel_dir}"
|
||||
def _envmap = [:]
|
||||
def _env = sh(script: "env", returnStdout: true).trim().split("\n")
|
||||
_env.each{ l ->
|
||||
def _ind = l.indexOf('=');
|
||||
def _n = l.substring(0, _ind);
|
||||
def _v = l.substring(_ind + 1);
|
||||
_envmap["${_n}"] = "${_v}";
|
||||
}
|
||||
sh "mkdir -p ${rel_dir}"
|
||||
sh "rm -rvf ${rel_dir}"
|
||||
sh "mkdir -p ${rel_dir}"
|
||||
|
||||
def root = readJSON(file: 'platforms/platforms.json')
|
||||
def _msg = "Built images:"
|
||||
|
||||
// individual platforms
|
||||
def platforms = ['osx', 'android', 'windows', 'windows32', 'pi']
|
||||
for (int i = 0; i < platforms.size(); ++i) {
|
||||
if (_envmap["BUILD_${platforms[i]}"] == "1") {
|
||||
stage("${platforms[i]}-shstk") {
|
||||
_msg += build_docker("${platforms[i]}", "${platforms[i]}", "", rel_dir)
|
||||
root.Platforms.each { key, dist ->
|
||||
if (dist.enabled) {
|
||||
stage ("${key}-shstk") {
|
||||
_msg += build_docker(dist.docker_image, dist.docker_dir, rel_dir)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// desktop linux set
|
||||
sh 'wget https://shs.tools/files/linux.json'
|
||||
def root = readJSON(file: 'linux.json')
|
||||
for (dist in root.Linux) {
|
||||
if (dist.off) continue
|
||||
stage ("${dist.system}-shstk") {
|
||||
_msg += build_docker(dist.docker_image, "linux_desktop", dist.docker_image, rel_dir)
|
||||
}
|
||||
}
|
||||
|
||||
sh "docker system prune -f"
|
||||
archiveArtifacts 'release/*'
|
||||
echo "${_msg}"
|
||||
|
||||
2
qad
2
qad
Submodule qad updated: 0497a52704...6b4bafd9cd
Reference in New Issue
Block a user