]> git.pld-linux.org Git - projects/cleanbuild.git/blame - docker-builder.sh
use local builder script
[projects/cleanbuild.git] / docker-builder.sh
CommitLineData
ce96f77c
ER
1#!/bin/sh
2set -e
3
4package=$1
5image=pld/cleanbuild
6
7name=cleanbuild-$package
8
9# cleanup
10docker kill $name && docker rm $name || :
11
12#topdir=$(rpm -E %_topdir)
13dir=$(pwd)
14topdir=$dir/rpm
15cache=$dir/cache
16install -d $topdir/bin $cache/poldek
17
18# start the container
19docker run --name=$name -d \
20 -v $topdir:/home/services/builder/rpm \
21 -v $cache/poldek:/var/cache/poldek \
40ae7102 22 --tmpfs /home/services/builder/rpm/BUILD:rw,noexec,nosuid,size=2G \
ce96f77c
ER
23 $image
24
25if [ ! -d $topdir/packages ]; then
26 uid=$(docker exec $name id -u builder)
27 gid=$(docker exec $name getgid builder)
28 sudo chown $uid:$gid $topdir
29 docker exec $name builder --init-rpm-dir
30fi
31
32# fetch sources
33docker exec $name builder -g $package
34
35git_tag=$(GIT_DIR=$topdir/packages/$package/.git git describe --tags --always)
36buildlog=${git_tag#auto/*/}.log
37
38# remove .la dependencies
39cat > $topdir/bin/cleanup-la <<'EOF'
40#!/bin/sh
41find /usr/lib{,64} -name "*.la" -print0 | xargs -0 grep -El "dependency_libs='.+'"
42exit 0
43EOF
44chmod +x $topdir/bin/cleanup-la
45docker exec $name sh -xc '~/rpm/bin/cleanup-la'
46
47while true; do
48 ./teeboth $buildlog docker exec $name builder -nn -bb -R $package && rc=$? || rc=$?
49
50 findbr=$package.findbr.log
51
52 export DOCKER_CONTAINER=$name
53 ./findbr rpm/BUILD/$package $buildlog > $findbr
54
55 installed_something=false
56 while read pkg msg; do
57 ./addbr $package "$pkg" "$msg"
58 installed_something=true
59 done < $findbr
60 rm -f $findbr
61
62 # go for another try
63 $installed_something && continue
64
65 # finished
66 if [ $rc -eq 0 ]; then
67 break
68 fi
69done
70
71# cleanup
72#docker kill $name && docker rm $name || :
This page took 0.182433 seconds and 4 git commands to generate.