From 1ffe77b9fd80e4077a4ddf6658cfbd7a5ee9620f Mon Sep 17 00:00:00 2001 From: rubo77 <github@r.z11.de> Date: Mon, 24 Oct 2016 00:59:58 +0200 Subject: [PATCH] make-release.sh added to automate build and manifest process --- make-release.sh | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 make-release.sh diff --git a/make-release.sh b/make-release.sh new file mode 100644 index 0000000..b5260ac --- /dev/null +++ b/make-release.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +## This script will compile Gluon for all architectures, create the +## manifest and sign it. For that, you must have clone gluon and have a +## valid site config. Additionally, the signing key must be present in +## ../../ecdsa-key-secret or defined as first argument. +## The second argument defines the branch (stable, beta, experimental). +## The third argument defines the version. +## Call from site directory with the version and branch variables +## properly configured in this script. + +# if version is unset, will use the default experimental version from site.mk +VERSION=${3:-"2016.2~exp$(date '+%y%m%d%H%M')"} +# branch must be set to either experimental, beta or stable +BRANCH=${2:-"stable"} +# must point to valid ecdsa signing key created by ecdsakeygen, relative to Gluon base directory +SIGNING_KEY=${1:-"../ecdsa-key-secret"} +#BROKEN must be set to "" or "BROKEN=1" +BROKEN="BROKEN=1" + +cd .. +if [ ! -d "site" ]; then + echo "This script must be called from within the site directory" + return +fi + +if [ "$(whoami)" == "root" ]; then + echo "Make may not be run as root" + return +fi + +echo "############## starting build process #################" >> build.log +date >> build.log +echo "if you want to start over empty the folder ../output/" +echo "see debug output with" +echo "tail -f ../build.log &" +sleep 3 + +#rm -r output +for TARGET in ar71xx-generic ar71xx-mikrotik ar71xx-nand brcm2708-bcm2708 brcm2708-bcm2709 mpc85xx-generic ramips-rt305x sunxi x86-64 x86-generic x86-kvm_guest x86-xen_domu +do + date >> build.log + if [ -z "$VERSION" ] + then + echo "Starting work on target $TARGET" | tee -a build.log + echo -e "\n\n\nmake GLUON_TARGET=$TARGET GLUON_BRANCH=stable update" >> build.log + make GLUON_TARGET=$TARGET GLUON_BRANCH=stable update >> build.log 2>&1 + echo -e "\n\n\nmake GLUON_TARGET=$TARGET GLUON_BRANCH=stable clean" >> build.log + make GLUON_TARGET=$TARGET GLUON_BRANCH=stable clean >> build.log 2>&1 + echo -e "\n\n\nmake GLUON_TARGET=$TARGET GLUON_BRANCH=stable V=s $BROKEN" >> build.log + make GLUON_TARGET=$TARGET GLUON_BRANCH=stable V=s $BROKEN >> build.log 2>&1 + echo -e "\n\n\n============================================================\n\n" >> build.log + else + echo "Starting work on target $TARGET" | tee -a build.log + echo -e "\n\n\nmake GLUON_TARGET=$TARGET GLUON_BRANCH=stable GLUON_RELEASE=$VERSION update" >> build.log + make GLUON_TARGET=$TARGET GLUON_BRANCH=stable GLUON_RELEASE=$VERSION update >> build.log 2>&1 + echo -e "\n\n\nmake GLUON_TARGET=$TARGET GLUON_BRANCH=stable GLUON_RELEASE=$VERSION clean" >> build.log + make GLUON_TARGET=$TARGET GLUON_BRANCH=stable GLUON_RELEASE=$VERSION clean >> build.log 2>&1 + echo -e "\n\n\nmake GLUON_TARGET=$TARGET GLUON_BRANCH=stable GLUON_RELEASE=$VERSION V=s $BROKEN" >> build.log + make GLUON_TARGET=$TARGET GLUON_BRANCH=stable GLUON_RELEASE=$VERSION V=s $BROKEN >> build.log 2>&1 + echo -e "\n\n\n============================================================\n\n" >> build.log + fi +done +date >> build.log + +echo "Compilation complete, creating manifest(s)" | tee -a build.log + +echo -e "make GLUON_BRANCH=experimental manifest" >> build.log +make GLUON_BRANCH=experimental manifest >> build.log 2>&1 +echo -e "\n\n\n============================================================\n\n" >> build.log + +if [[ "$BRANCH" == "beta" ]] || [[ "$BRANCH" == "stable" ]] +then + echo -e "make GLUON_BRANCH=beta manifest" >> build.log + make GLUON_BRANCH=beta manifest >> build.log 2>&1 + echo -e "\n\n\n============================================================\n\n" >> build.log +fi + +if [[ "$BRANCH" == "stable" ]] +then + echo -e "make GLUON_BRANCH=stable manifest" >> build.log + make GLUON_BRANCH=stable manifest >> build.log 2>&1 + echo -e "\n\n\n============================================================\n\n" >> build.log +fi + +echo "Manifest creation complete, signing manifest" + +echo -e "contrib/sign.sh $SIGNING_KEY output/images/sysupgrade/experimental.manifest" >> build.log +contrib/sign.sh $SIGNING_KEY output/images/sysupgrade/experimental.manifest >> build.log 2>&1 + +if [[ "$BRANCH" == "beta" ]] || [[ "$BRANCH" == "stable" ]] +then + echo -e "contrib/sign.sh $SIGNING_KEY output/images/sysupgrade/beta.manifest" >> build.log + contrib/sign.sh $SIGNING_KEY output/images/sysupgrade/beta.manifest >> build.log 2>&1 +fi + +if [[ "$BRANCH" == "stable" ]] +then + echo -e "contrib/sign.sh $SIGNING_KEY output/images/sysupgrade/stable.manifest" >> build.log + contrib/sign.sh $SIGNING_KEY output/images/sysupgrade/stable.manifest >> build.log 2>&1 +fi +cd site +date >> build.log +echo "Done :)" -- GitLab