From 1781ca282afbcd9b80ddf3bd693432acec672a4c Mon Sep 17 00:00:00 2001 From: chblodg Date: Fri, 4 Mar 2022 17:52:55 -0800 Subject: [PATCH] added variables for pufferfish, also added setup only test (#1399) --- README.md | 4 +- scripts/start-deployPufferfish | 37 ++++++++++--------- .../pufferfish/docker-compose.yml | 13 +++++++ tests/setuponlytests/pufferfish/require.sh | 1 + tests/setuponlytests/pufferfish/verify.sh | 3 ++ 5 files changed, 38 insertions(+), 20 deletions(-) create mode 100644 tests/setuponlytests/pufferfish/docker-compose.yml create mode 100644 tests/setuponlytests/pufferfish/require.sh create mode 100644 tests/setuponlytests/pufferfish/verify.sh diff --git a/README.md b/README.md index 67fb770b..13d06136 100644 --- a/README.md +++ b/README.md @@ -539,10 +539,10 @@ A [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) server, which is "a -e TYPE=PUFFERFISH -> NOTE: The `VERSION` variable is used to select a Pufferfish branch to download from. The available options are "LATEST" and "1.18" +> NOTE: The `VERSION` variable is used to select branch latest, 1.18, or 1.17. Use PUFFERFISH_BUILD to really select the SERVER VERSION number. Extra variables: -- `PUFFERFISH_BUILD=lastSuccessfulBuild` : set a specific Pufferfish build to use +- `PUFFERFISH_BUILD=lastSuccessfulBuild` : set a specific Pufferfish build to use. Example: selecting build 47 => 1.18.1, or build 50 => 1.18.2 etc - `FORCE_REDOWNLOAD=false` : set to true to force the located server jar to be re-downloaded - `USE_FLARE_FLAGS=false` : set to true to add appropriate flags for the built-in [Flare](https://blog.airplane.gg/flare) profiler diff --git a/scripts/start-deployPufferfish b/scripts/start-deployPufferfish index 1ffd0c3b..c8f7652d 100755 --- a/scripts/start-deployPufferfish +++ b/scripts/start-deployPufferfish @@ -1,39 +1,40 @@ #!/bin/bash -. ${SCRIPTS:-/}start-utils +# shellcheck source=start-utils +. "${SCRIPTS:-/}start-utils" + set -euo pipefail isDebugging && set -x IFS=$'\n\t' -if [ "${VERSION}" != "LATEST" ] && [ "${VERSION}" != "1.18" ] ; then - log "ERROR: Pufferfish server type only supports VERSION=LATEST, VERSION=1.18. Note that these are branches, not #.#.# versions." +if [ "${VANILLA_VERSION%.*}" != "1.18" ] && [ "${VANILLA_VERSION%.*}" != "1.17" ]; then + log "ERROR: Pufferfish server type only supports versions 1.18 or 1.17, use PUFFERFISH_BUILD to select the the correct build 47 => 1.18.1, 50 => 1.18.2 etc" exit 1 fi -: ${PUFFERFISH_BUILD:=lastSuccessfulBuild} +: "${PUFFERFISH_BUILD:=lastSuccessfulBuild}" -if [ "${VERSION}" = "LATEST" ] || [ "${VERSION}" = "1.18" ]; then - PUFFERFISH_BRANCH="1.18" - PUFFERFISH_VERSION="1.18.1-R0.1" -fi +PUFFERFISH_BUILD_JSON=$(curl -X GET -s "https://ci.pufferfish.host/job/Pufferfish-${VANILLA_VERSION%.*}/${PUFFERFISH_BUILD}/api/json") +# Example: "url": "https://ci.pufferfish.host/job/Pufferfish-1.18/50/", +PUFFERFISH_BUILD_URL=$(jq -n "$PUFFERFISH_BUILD_JSON" | jq -jc '.url // empty' ) +# Example: "fileName": "pufferfish-paperclip-1.18.2-R0.1-SNAPSHOT-reobf.jar", +PUFFERFISH_BUILD_FILENAME=$(jq -n "$PUFFERFISH_BUILD_JSON" | jq -jc '.artifacts[].fileName // empty' ) +PUFFERFISH_BUILD_DOWNLOAD_URL="${PUFFERFISH_BUILD_URL}artifact/build/libs/${PUFFERFISH_BUILD_FILENAME}" -log "Using Pufferfish-${PUFFERFISH_BRANCH} branch" - -export SERVER=pufferfish-${PUFFERFISH_BRANCH}-${PUFFERFISH_BUILD}.jar +# Setting server to the Jar filename for export. +export SERVER=$PUFFERFISH_BUILD_FILENAME log "Removing old Pufferfish versions ..." shopt -s nullglob for f in pufferfish-*.jar; do - [[ $f != $SERVER ]] && rm $f + [[ $f != "$SERVER" ]] && rm "$f" done if [ ! -f "$SERVER" ] || isTrue "${FORCE_REDOWNLOAD:-false}"; then - artifact="build/libs/pufferfish-paperclip-${PUFFERFISH_VERSION}-SNAPSHOT-reobf.jar" - downloadUrl="https://ci.pufferfish.host/job/Pufferfish-${PUFFERFISH_BRANCH}/${PUFFERFISH_BUILD}/artifact/${artifact}" - log "Downloading Pufferfish from $downloadUrl ..." - if ! get -o "$SERVER" "$downloadUrl"; then - log "ERROR: failed to download from $downloadUrl (status=$?)" + log "Downloading Pufferfish from $PUFFERFISH_BUILD_DOWNLOAD_URL ..." + if ! get -o "$SERVER" "$PUFFERFISH_BUILD_DOWNLOAD_URL"; then + log "ERROR: failed to download from $PUFFERFISH_BUILD_DOWNLOAD_URL (status=$?)" exit 3 fi fi @@ -41,4 +42,4 @@ fi # Normalize on Spigot for later operations export FAMILY=SPIGOT -exec ${SCRIPTS:-/}start-spiget "$@" +exec "${SCRIPTS:-/}start-spiget" "$@" diff --git a/tests/setuponlytests/pufferfish/docker-compose.yml b/tests/setuponlytests/pufferfish/docker-compose.yml new file mode 100644 index 00000000..2804253e --- /dev/null +++ b/tests/setuponlytests/pufferfish/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3" + +services: + mc: + restart: "no" + image: ${IMAGE_TO_TEST:-itzg/minecraft-server} + environment: + EULA: "TRUE" + SETUP_ONLY: "TRUE" + TYPE: PUFFERFISH + VERSION: ${MINECRAFT_VERSION:-LATEST} + volumes: + - ./data:/data diff --git a/tests/setuponlytests/pufferfish/require.sh b/tests/setuponlytests/pufferfish/require.sh new file mode 100644 index 00000000..65b61c6c --- /dev/null +++ b/tests/setuponlytests/pufferfish/require.sh @@ -0,0 +1 @@ +[[ $MINECRAFT_VERSION == LATEST ]] || exit 1 diff --git a/tests/setuponlytests/pufferfish/verify.sh b/tests/setuponlytests/pufferfish/verify.sh new file mode 100644 index 00000000..7b35f372 --- /dev/null +++ b/tests/setuponlytests/pufferfish/verify.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +mc-image-helper assert fileExists "/data/pufferfish-*"