1
Home
alex edited this page 2021-09-02 21:02:38 +02:00
#!/bin/sh
set -e
GLUON_RELEASE="${GIT_LOCAL_BRANCH}-$(date '+%Y%m%d')-${BUILD_ID}"
echo "Building Gluon firmware"
echo " branch : ${GIT_LOCAL_BRANCH}"
echo " version : ${GLUON_RELEASE}"
echo " autoupdate disabled : ${DISABLE_AUTOUPDATER}"
echo " target : ${BUILD_TARGET}"
echo " debug build pipeline: ${GLUON_DEBUG_BUILD}"
MAKE_OPTS="GLUON_RELEASE=${GLUON_RELEASE}"
# enable/disable feature according to branch name
if [ "${DISABLE_AUTOUPDATER}" = "false" ] ; then
MAKE_OPTS="${MAKE_OPTS} GLUON_AUTOUPDATER_BRANCH=${GIT_LOCAL_BRANCH} GLUON_AUTOUPDATER_ENABLED=1"
else
# disable autoupdate if debug enabled for build process
GLUON_AUTOUPDATER_ENABLED=0
MAKE_OPTS="${MAKE_OPTS} GLUON_AUTOUPDATER_ENABLED=0"
fi
if [ "x${BUILD_TARGET}" = "xall" ] ; then
# if all is selected, ask gluon build system which targets are available
BUILD_TARGET="$(make list-targets)"
fi
if [ "${GLUON_DEBUG_BUILD}" = "true" ] ; then
MAKE_OPTS="${MAKE_OPTS} V=s"
NUM_JOBS=1
fi
# update gluon feeds
false && make update
# build firmwares for all targets
for target in ${BUILD_TARGET} ; do
make -j${NUM_JOBS} ${MAKE_OPTS} GLUON_TARGET=${target} || make -j1 V=s
done
if [ "${DISABLE_AUTOUPDATER}" = "false" ] ; then
# generate manifest and sign it
make manifest GLUON_RELEASE=${GLUON_RELEASE} GLUON_AUTOUPDATER_BRANCH=${GIT_LOCAL_BRANCH}
sh contrib/sign.sh "${GLUON_AUTOUPDATER_SIGNING_KEY}" "output/images/sysupgrade/${GIT_LOCAL_BRANCH}.manifest"
fi
if [ "${PUSH_IMAGES}" = "true" ] ; then
rsync -e "ssh -p 4028 -i ${GLUON_IMAGE_UPLOADER_SSH_KEY_FILE} -o StrictHostKeyChecking=accept-new" \
--partial --recursive --times --delete-after \
output/ \
"${GLUON_IMAGE_UPLOADER_SSH_KEY_USER}@freifunk.dezentrale.cloud:/var/www/images/images/${GIT_LOCAL_BRANCH}/"
fi