Add CI building scripts using Docker
This is a first stab at a set of scripts to build each defconfig
on each supported build platform inside Docker containers.
The idea is that on x86-64 and ppc64le hosts, we can easily test
that everything still at least builds on our supported build
platforms.
Due to docker image availability and Docker's complete lack of
acknowledging that there may exist architectures other than x86-64, we
get to jump through some rather stupid hoops to work out what
to build where.
Tested on Fedora 23 x86-64 and Ubuntu xenial snapshot with docker
daily snapshot on ppc64le.
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
diff --git a/ci/build-all-defconfigs.sh b/ci/build-all-defconfigs.sh
new file mode 100755
index 0000000..1730e28
--- /dev/null
+++ b/ci/build-all-defconfigs.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+set -ex
+set -eo pipefail
+
+DEFCONFIGS=`(cd openpower/configs; ls -1 *_defconfig)`
+
+if [ -z "$1" or ! -d "$1" ]; then
+ echo "No output directory specified"
+ exit 1;
+fi
+
+if [ -z "$CCACHE_DIR" ]; then
+ CCACHE_DIR=`pwd`/.op-build_ccache
+fi
+
+shopt -s expand_aliases
+source op-build-env
+
+for i in $DEFCONFIGS; do
+ op-build $i
+ echo 'BR2_CCACHE=y' >> output/.config
+ echo "BR2_CCACHE_DIR=\"$CCACHE_DIR\"" >> output/.config
+ echo 'BR2_CCACHE_INITIAL_SETUP=""' >> output/.config
+
+ op-build olddefconfig
+ op-build
+ r=$?
+ mkdir $1/$i-images
+ mv output/images/* $1/$i-images/
+ mv output/.config $1/$i-images/.config
+ lsb_release -a > $1/$i-images/lsb_release
+ rm -rf output/*
+ if [ $r -ne 0 ]; then
+ exit $r
+ fi
+done
+