initial commit
This commit is contained in:
Vendored
+71
@@ -0,0 +1,71 @@
|
||||
@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/'
|
||||
}
|
||||
}
|
||||
|
||||
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'
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user