This repository has been archived on 2020-09-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
libs/Jenkinsfile
2020-05-18 19:18:21 +03:00

45 lines
1.3 KiB
Groovy

def build_docker(name) {
def image = "${name}-libs"
echo "Build image ${image}"
def pref = ""
if (env.DOCKER_PREFIX) {
pref = "--build-arg DOCKER_PREFIX=${env.DOCKER_PREFIX}/"
}
def jobs = 4
if (env.JOBS_COUNT) {
jobs = "${env.JOBS_COUNT}"
}
def args = "${pref} --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER} --build-arg JOBS_COUNT=${jobs}"
args += " -v `pwd`:/soft/libs -v `pwd`/../libs_build_${name}:/soft/libs_build_${name} --build-arg HAS_SOURCES=1"
dir ("docker/${image}") {
//echo "build ${image} ${args}"
sh "docker build ${args} --no-cache -t ${image} ."
}
return "\n - ${image}"
}
node {
checkout scm
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}";
}
//println "done!"
//println "${_envmap}"
def _msg = "Built images:"
def platforms = ['debian', 'osx', 'windows', 'android', 'pi']
for (int i = 0; i < platforms.size(); ++i) {
//echo "check BUILD_${platforms[i]} -> ${_v}"
if (_envmap["BUILD_${platforms[i]}"] == "1") {
stage("${platforms[i]}-libs") {
_msg += build_docker("${platforms[i]}")
}
}
}
sh "docker system prune -f"
echo "${_msg}"
}