#!/usr/bin/env bash

set -o pipefail


source scripts/adjustEnvVars.sh || exit $?


#
# Define steps paths
#

PRODUCTS=(bin lib libexec share *-nodeos-linux-musl*)
PREBUILD=prebuilds/$KERNEL_NAME-$NODE_ARCH.tar.gz


# Clean products previously to create them
rm -rf ${PRODUCTS[@]} || exit 1


#
# Build cross toolchain for all supported platforms
#

npm run build -- -b 32     && npm test -- -b 32     && rm -rf build || exit 10
npm run build -- -b 64     && npm test -- -b 64     && rm -rf build || exit 11
npm run build -- -M raspi2 && npm test -- -M raspi2 && rm -rf build || exit 12


#
# Pack toolchain in a node-gyp compatible way
#

STEP_DIR=$PREBUILD

mkdir -p prebuilds                          &&
tar -cf - ${PRODUCTS[@]} | gzip > $STEP_DIR || err 20


#
# Upload release to GitHub and npm
#

if [ "$GITHUB_TOKEN" ]; then
  prebuild --upload-all $GITHUB_TOKEN || exit 30
fi

if [ "$BRANCH_NAME" = "master" ]; then
  ci-publish
fi

#
# Restore binary symlinks
#

scripts/symlinks.sh || exit 40
