docker-minecraft-server/scripts/start-deployCanyon

63 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# shellcheck source=start-utils
. "${SCRIPTS:-/}start-utils"
isDebugging && set -x
: "${CANYON_BUILD:=lastSuccessfulBuild}"
if [ "${VERSION}" != "b1.7.3" ]; then
log "ERROR: Canyon server type only supports VERSION=b1.7.3"
exit 1
fi
canyonJob="https://jenkins.glass-launcher.net/job/Canyon"
githubUrl="https://github.com/KoboDev/SupplyAndDemand/releases/download"
buildRelPath=$(
curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json" |
jq -r '.artifacts[0].relativePath'
)
buildNumber=$(
curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json" |
jq -r '.number'
)
baseName=$(basename "${buildRelPath}")
# Add build tag to non-tagged builds for version detection
if [ ${baseName%.*} = 'canyon-server' ]; then
export SERVER=${baseName%.*}_build${buildNumber}.jar
else
export SERVER="${baseName}"
fi
if [ ! -f "$SERVER" ]; then
# If CANYON_BUILD is old artifact, then download from GitHub
if [ "${CANYON_BUILD}" = "final" ]; then
downloadUrl="${githubUrl}/finalcanyon/canyon-server.jar"
log "Downloading final Canyon build from $downloadUrl ..."
elif [ "${CANYON_BUILD}" = "6" ]; then
downloadUrl="${githubUrl}/CanyonRelease/Canyon-Build-6.jar"
log "Downloading Canyon build 6 from $downloadUrl ..."
elif [ "${CANYON_BUILD}" = "26" ]; then
downloadUrl="${githubUrl}/CanyonRelease/canyon-build-26.jar"
log "Downloading Canyon build 26 from $downloadUrl ..."
# Builds greater than 32 are on Jenkins
else
downloadUrl="${canyonJob}/${CANYON_BUILD}/artifact/${buildRelPath}"
log "Downloading Canyon build ${buildNumber} from $downloadUrl ..."
fi
curl -fsSL -o "$SERVER" "$downloadUrl"
if [ ! -f "$SERVER" ]; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
exit 3
fi
fi
# Normalize on Spigot for later operations
export FAMILY=SPIGOT
exec ${SCRIPTS:-/}start-spiget "$@"