76 lines
2.4 KiB
Groovy
76 lines
2.4 KiB
Groovy
@Library('SHS.Platforms') _
|
|
node {
|
|
properties([
|
|
parameters(
|
|
[booleanParam(name: 'RPi_make_sysroot', defaultValue: false, description: 'Rebuild raspbian sysroot, or only execute Dockerfile'), booleanParam(name: 'no_docker_cache', defaultValue: false, description: 'Build dockers without use docker cache')]
|
|
)
|
|
])
|
|
def jobs = 4
|
|
if (env.JOBS_COUNT) {
|
|
jobs = "${env.JOBS_COUNT}"
|
|
}
|
|
def jobs_qt = 2
|
|
if (env.JOBS_QT_COUNT) {
|
|
jobs_qt = "${env.JOBS_QT_COUNT}"
|
|
}
|
|
def docker_cache_arg = ""
|
|
if (Boolean.valueOf(no_docker_cache)) {
|
|
docker_cache_arg = "--no-cache"
|
|
}
|
|
stage("Download SRC") {
|
|
checkout scm
|
|
}
|
|
|
|
def pl = new org.SHS.Platforms(this)
|
|
pl.get()
|
|
|
|
stage("Debian-base") {
|
|
docker.build("${env.DOCKER_PREFIX}/debian-base", "./debian-base ${docker_cache_arg}")
|
|
}
|
|
|
|
if (pl.root().platforms.OSX.enabled) {
|
|
stage("OSXcross") {
|
|
docker.build("${env.DOCKER_PREFIX}/osxcross", "./osxcross ${docker_cache_arg} --build-arg XCODE_XIP=172.17.0.1/Xcode_10.3.xip")
|
|
}
|
|
}
|
|
|
|
if (pl.root().platforms["Raspbian 10"].enabled) {
|
|
stage("Raspbian SYSROOT") {
|
|
if (Boolean.valueOf(RPi_make_sysroot)) {
|
|
echo 'Building Raspbian sysroot ...'
|
|
sh 'cd ./pi && bash ./umount_sysroot.sh && bash ./mount_sysroot.sh'
|
|
sh 'mkdir -p $HOME/rpi_image'
|
|
docker.image('${env.DOCKER_PREFIX}/debian-base').inside('-u root:root -v $HOME/rpi_image:/soft/rpi_image') {
|
|
sh 'cd ./pi && bash make_sysroot.sh'
|
|
}
|
|
sh 'cd ./pi && bash ./umount_sysroot.sh'
|
|
}
|
|
sh 'cp -vf $HOME/rpi_image/sysroot.tar.bz2 ./pi/'
|
|
}
|
|
}
|
|
|
|
docker.build("${env.DOCKER_PREFIX}/windows-base", "./windows-base ${docker_cache_arg}")
|
|
docker.build("${env.DOCKER_PREFIX}/windows-base-32", "./windows-base-env32 ${docker_cache_arg}")
|
|
docker.build("${env.DOCKER_PREFIX}/windows-base-64", "./windows-base-env64 ${docker_cache_arg}")
|
|
|
|
pl.forEach ({ dist ->
|
|
def args = "./${dist.docker.directory} ${docker_cache_arg}"
|
|
for (arg in dist.docker.build_options) {
|
|
args += " --build-arg ${arg.key}=\"${arg.value}\""
|
|
}
|
|
args += " --build-arg JOBS_COUNT=${jobs}"
|
|
args += " --build-arg JOBS_QT_COUNT=${jobs_qt}"
|
|
def dprefix = "${env.DOCKER_PREFIX}"
|
|
if (dprefix != "" && !dprefix.endsWith("/")) dprefix += "/"
|
|
args += " --build-arg DOCKER_PREFIX=${dprefix}"
|
|
//print "${env.DOCKER_PREFIX}/${dist.docker.image_basename} -> ${args}"
|
|
docker.build("${env.DOCKER_PREFIX}/${dist.docker.image_basename}", args)
|
|
},
|
|
ondemand: true
|
|
)
|
|
|
|
stage("docker prune") {
|
|
sh 'docker system prune -f'
|
|
}
|
|
}
|