]> git.ozlabs.org Git - next-scripts/commitdiff
do_build: Do builds in parallel
authorMichael Ellerman <mpe@ellerman.id.au>
Thu, 11 Jun 2015 22:18:04 +0000 (08:18 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 19 Jun 2015 05:53:55 +0000 (15:53 +1000)
do_build

index 09fae6d63f2129a16c3c8594cbe272c9089feb5d..89a3d7665b38f9ecfc0fc82d610d6365cabdd90c 100755 (executable)
--- a/do_build
+++ b/do_build
@@ -21,25 +21,73 @@ ssh root@"$build_host" unshare -n su $(id -u -n) <<-EOF
        git reset --hard next
        touch .scmversion
 
-       echo Building: powerpc ppc64_defconfig
-       d=../powerpc_ppc64_defconfig
-       [ -d \$d ] || mkdir \$d
-       cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d ppc64_defconfig
-       time cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d -j$j_factor -s
-
        echo Building: x86_64 allmodconfig
        d=../x86_64_allmodconfig
        [ -d \$d ] || mkdir \$d
+       log_x86=\$d.log
        e=\$d.except
        echo CONFIG_BUILD_DOCSRC=n >\$e
-       KCONFIG_ALLCONFIG=\$e cross -n -N -a x86_64 -c $gcc_version O=\$d allmodconfig
-       time cross -n -N -a x86_64 -c $gcc_version O=\$d -j$j_factor -s
+       {
+               KCONFIG_ALLCONFIG=\$e cross -n -N -a x86_64 -c $gcc_version O=\$d allyesconfig
+               /usr/bin/time cross -n -N -a x86_64 -c $gcc_version O=\$d -j$j_factor -s
+       } > \$log_x86 2>&1 &
+
+       echo Building: powerpc ppc64_defconfig
+       d=../powerpc_ppc64_defconfig
+       [ -d \$d ] || mkdir \$d
+       log_ppc=\$d.log
+       {
+               cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d ppc64_defconfig
+               /usr/bin/time cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d -j$j_factor -s
+       } > \$log_ppc 2>&1 &
 
        echo Building: arm multi_v7_defconfig
        d=../arm_multi_v7_defconfig
        [ -d \$d ] || mkdir \$d
-       cross -n -N -a arm -c $gcc_version O=\$d multi_v7_defconfig
-       time cross -n -N -a arm -c $gcc_version O=\$d -j$j_factor -s
+       log_arm=\$d.log
+       {
+               cross -n -N -a arm -c $gcc_version O=\$d multi_v7_defconfig
+               /usr/bin/time cross -n -N -a arm -c $gcc_version O=\$d -j$j_factor -s
+       } > \$log_arm 2>&1 &
+
+       wait %3
+       rc=\$?
+
+       cat \$log_arm
+       if [ \$rc -ne 0 ]; then
+               echo "ERROR: ARM build failed"
+               kill %1
+               kill %2
+               rm .scmversion
+               exit 1
+       else
+               echo "ARM build OK"
+       fi
+
+       wait %2
+       rc=\$?
+
+       cat \$log_ppc
+       if [ \$rc -ne 0 ]; then
+               echo "ERROR: powerpc build failed"
+               kill %1
+               rm .scmversion
+               exit 1
+       else
+               echo "powerpc build OK"
+       fi
+
+       wait %1
+       rc=\$?
+
+       cat \$log_x86
+       if [ \$rc -ne 0 ]; then
+               echo "ERROR: x86 build failed"
+               rm .scmversion
+               exit 1
+       else
+               echo "x86 build OK"
+       fi
 
        rm .scmversion
 EOF