set -euo pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" ARCH=$(uname -m) TEMP_DIR="${SCRIPT_DIR}/temp" SOS="${TEMP_DIR}/sos" echo "Publishing ${PROJECT} to gitea.jde.nz/public/${PROJECT}:latest" function die() { title "error: $1" exit 1 } [[ -n $SOS_WRITE_TOKEN ]] || die "SOS_WRITE_TOKEN not specified" # clear output dir rm -rf "${SCRIPT_DIR}/output" mkdir -p "${SCRIPT_DIR}/output" # build release version export CMAKE_BUILD_TYPE="Release" export PROJECT="dropshell-tool" docker build \ -t "${PROJECT}-build" \ -f "${SCRIPT_DIR}/Dockerfile.dropshell-build" \ --build-arg PROJECT="${PROJECT}" \ --build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \ --output "${SCRIPT_DIR}/output" \ "${SCRIPT_DIR}" [ -f ${SCRIPT_DIR}/output/dropshell-tool ] || die "Build failed." # download the sos binary mkdir -p "${TEMP_DIR}" trap 'rm -rf "${TEMP_DIR}"' EXIT curl -L -o "${SOS}" "https://getbin.xyz/sos" chmod +x "${SOS}" # upload arch-specific binary "${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/output/${PROJECT}" "${PROJECT}:latest-${ARCH}" # upload generic install script (ok if multiple times as we iterate through arch's) "${SOS}" upload "getbin.xyz" "${SCRIPT_DIR}/install.sh" "${PROJECT}-install:latest"