diff --git a/run.sh b/run.sh index 2e5da0e..9f29075 100755 --- a/run.sh +++ b/run.sh @@ -4,140 +4,7 @@ SCRIPT_DIR=$(dirname "$0") WORKSPACE=$(pwd) -mkdir -p "$SCRIPT_DIR/build" - -echo "Got versions $REV" - -if [ -z "$M2_DIRECTORY" ]; then - echo "m2 directory not specified, defaulting to $SCRIPT_DIR/m2" - M2_DIRECTORY="$SCRIPT_DIR/m2" -fi - -mkdir -p "$M2_DIRECTORY" - -IFS=',' read -r -a versions <<< "$REV" - -for ver in "${versions[@]}"; do - if [[ "$ver" =~ ^1\.8(\.[1-9])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.8.8" || echo "$BUILD_JAVA_8,1.8.8" ) - elif [[ "$ver" =~ ^1\.9(\.[12])$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.9.2" || echo "$BUILD_JAVA_8,1.9.2" ) - elif [[ "$ver" =~ ^1\.9\.[34]$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.9.4" || echo "$BUILD_JAVA_8,1.9.4" ) - elif [[ "$ver" =~ ^1\.10(\.[12])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.10.2" || echo "$BUILD_JAVA_8,1.10.2" ) - elif [[ "$ver" =~ ^1\.11(\.[12])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.11.2" || echo "$BUILD_JAVA_8,1.11.2" ) - elif [[ "$ver" =~ ^1\.12(\.[12])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.12.2" || echo "$BUILD_JAVA_8,1.12.2" ) - elif [[ "$ver" =~ ^1\.13(\.[12])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.13.2" || echo "$BUILD_JAVA_8,1.13.2" ) - elif [[ "$ver" =~ ^1\.14(\.[1-4])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.14.4" || echo "$BUILD_JAVA_8,1.14.4" ) - elif [[ "$ver" =~ ^1\.15(\.[12])?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.15.2" || echo "$BUILD_JAVA_8,1.15.2" ) - elif [[ "$ver" =~ ^1\.16(\.1)?$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.16.1" || echo "$BUILD_JAVA_8,1.16.1" ) - elif [[ "$ver" =~ ^1\.16\.2$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.16.2" || echo "$BUILD_JAVA_8,1.16.2" ) - elif [[ "$ver" =~ ^1\.16\.[34]$ ]]; then - BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.16.4" || echo "$BUILD_JAVA_8,1.16.4" ) - elif [[ "$ver" =~ ^1\.17(\.*)?$ ]]; then - >&2 echo "Spigot 1.17.x not supported due to java 14 CVEs" - elif [[ "$ver" =~ ^1\.18(\.1)?$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.18.1" || echo "$BUILD_JAVA_17,1.18.1" ) - elif [[ "$ver" =~ ^1\.18\.2$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.18.2" || echo "$BUILD_JAVA_17,1.18.2" ) - elif [[ "$ver" =~ ^1\.19(\.[12])?$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.19.2" || echo "$BUILD_JAVA_17,1.19.2" ) - elif [[ "$ver" =~ ^1\.19\.3$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.19.3" || echo "$BUILD_JAVA_17,1.19.3" ) - elif [[ "$ver" =~ ^1\.19\.4$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.19.4" || echo "$BUILD_JAVA_17,1.19.4" ) - elif [[ "$ver" =~ ^1\.20(\.1)?$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.20.1" || echo "$BUILD_JAVA_17,1.20.1" ) - elif [[ "$ver" =~ ^1\.20\.2$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.20.2" || echo "$BUILD_JAVA_17,1.20.2" ) - elif [[ "$ver" =~ ^1\.20\.[34]$ ]]; then - BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.20.4" || echo "$BUILD_JAVA_17,1.20.4" ) - elif [[ "$ver" =~ ^1\.20\.*$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.20.6" || echo "$BUILD_JAVA_21,1.20.6" ) - elif [[ "$ver" =~ ^1\.21(\.1)?$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.1" || echo "$BUILD_JAVA_21,1.21.1" ) - elif [[ "$ver" =~ ^1\.21\.[23]$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.3" || echo "$BUILD_JAVA_21,1.21.3" ) - elif [[ "$ver" =~ ^1\.21\.4$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.4" || echo "$BUILD_JAVA_21,1.21.4" ) - elif [[ "$ver" =~ ^1\.21\.5$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.5" || echo "$BUILD_JAVA_21,1.21.5" ) - elif [[ "$ver" =~ ^1\.21\.6$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.6" || echo "$BUILD_JAVA_21,1.21.6" ) - elif [[ "$ver" =~ ^1\.21\.[78]$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.8" || echo "$BUILD_JAVA_21,1.21.8" ) - elif [[ "$ver" =~ ^1\.21\.(9|10)$ ]]; then - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.10" || echo "$BUILD_JAVA_21,1.21.10" ) - else - echo "Unknown version $ver, attempting to build with java 21" - BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "$ver" || echo "$BUILD_JAVA_21,$ver" ) - fi -done - -if [ ! -z ${BUILD_JAVA_21+x} ]; then - if [ -z ${JAVA_VERSION+x} ]; then - JAVA_VERSION=21 - echo "No java version specified, defaulting to 21" - fi - - echo "Checking for java 21 spigot builds: $BUILD_JAVA_21" - - docker run --rm \ - --user $(id -u):$(id -g) \ - -e MAVEN_CONFIG=/var/maven/.m2 \ - -e M2_PATH=/var/maven/.m2 \ - -e REV="$BUILD_JAVA_21" \ - --volume "$SCRIPT_DIR/build:/build" \ - --volume "$M2_DIRECTORY:/var/maven/.m2" \ - --volume "$SCRIPT_DIR/scripts:/scripts" \ - -- docker.io/maven:3.9.11-eclipse-temurin-21 /scripts/install-spigot.sh -fi - - -if [ ! -z ${BUILD_JAVA_17+x} ]; then - if [ -z ${JAVA_VERSION+x} ]; then - JAVA_VERSION=17 - echo "No java version specified, defaulting to 17" - fi - - echo "Checking for java 17 spigot builds: $BUILD_JAVA_17" - docker run --rm \ - --user $(id -u):$(id -g) \ - -e MAVEN_CONFIG=/var/maven/.m2 \ - -e M2_PATH=/var/maven/.m2 \ - -e REV="$BUILD_JAVA_17" \ - --volume "$SCRIPT_DIR/build:/build" \ - --volume "$M2_DIRECTORY:/var/maven/.m2" \ - --volume "$SCRIPT_DIR/scripts:/scripts" \ - -- docker.io/maven:3.9.11-eclipse-temurin-17 /scripts/install-spigot.sh -fi - -if [ ! -z ${BUILD_JAVA_8+x} ]; then - if [ -z ${JAVA_VERSION+x} ]; then - JAVA_VERSION=8 - echo "No java version specified, defaulting to 8" - fi - - echo "Checking for java 8 spigot builds: $BUILD_JAVA_8" - - docker run --rm \ - --user $(id -u):$(id -g) \ - -e MAVEN_CONFIG=/var/maven/.m2 \ - -e M2_PATH=/var/maven/.m2 \ - -e REV="$BUILD_JAVA_8" \ - --volume "$SCRIPT_DIR/build:/build" \ - --volume "$M2_DIRECTORY:/var/maven/.m2" \ - --volume "$SCRIPT_DIR/scripts:/scripts" \ - -- docker.io/maven:3.9.11-eclipse-temurin-8 /scripts/install-spigot.sh -fi +source "$SCRIPT_DIR/scripts/build-versions.sh" echo "Mounting m2 from $M2_DIRECTORY" echo "Using java version ${JAVA_VERSION:-21}" diff --git a/run_server.sh b/run_server.sh index 6d19f57..6651d4d 100755 --- a/run_server.sh +++ b/run_server.sh @@ -10,4 +10,10 @@ fi SCRIPT_DIR=$(dirname "$0") -"./$SCRIPT_DIR/run.sh" java -Xms4096M -Xmx4096M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar "$SCRIPT_DIR/build/spigot-${REV}-R0.1-SNAPSHOT.jar" --nogui \ No newline at end of file +source "$SCRIPT_DIR/scripts/build-versions.sh" + +docker run --rm -it \ + --user $(id -u):$(id -g) \ + -p 25565:25565 + --volume "$SCRIPT_DIR/build:/build" \ + -- docker.io/maven:3.9.11-eclipse-temurin-${JAVA_VERSION:-21} java -Xms4096M -Xmx4096M -jar "$SCRIPT_DIR/build/spigot-${REV}-R0.1-SNAPSHOT.jar" --nogui \ No newline at end of file diff --git a/scripts/build-versions.sh b/scripts/build-versions.sh new file mode 100755 index 0000000..5299548 --- /dev/null +++ b/scripts/build-versions.sh @@ -0,0 +1,140 @@ +#!/usr/bin/env bash + +SCRIPT_DIR=$(dirname "$0")/.. + +WORKSPACE=$(pwd) + +mkdir -p "$SCRIPT_DIR/build" + +echo "Got versions $REV" + +if [ -z "$M2_DIRECTORY" ]; then + echo "m2 directory not specified, defaulting to $SCRIPT_DIR/m2" + M2_DIRECTORY="$SCRIPT_DIR/m2" +fi + +mkdir -p "$M2_DIRECTORY" + +IFS=',' read -r -a versions <<< "$REV" + +for ver in "${versions[@]}"; do + if [[ "$ver" =~ ^1\.8(\.[1-9])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.8.8" || echo "$BUILD_JAVA_8,1.8.8" ) + elif [[ "$ver" =~ ^1\.9(\.[12])$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.9.2" || echo "$BUILD_JAVA_8,1.9.2" ) + elif [[ "$ver" =~ ^1\.9\.[34]$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.9.4" || echo "$BUILD_JAVA_8,1.9.4" ) + elif [[ "$ver" =~ ^1\.10(\.[12])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.10.2" || echo "$BUILD_JAVA_8,1.10.2" ) + elif [[ "$ver" =~ ^1\.11(\.[12])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.11.2" || echo "$BUILD_JAVA_8,1.11.2" ) + elif [[ "$ver" =~ ^1\.12(\.[12])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.12.2" || echo "$BUILD_JAVA_8,1.12.2" ) + elif [[ "$ver" =~ ^1\.13(\.[12])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.13.2" || echo "$BUILD_JAVA_8,1.13.2" ) + elif [[ "$ver" =~ ^1\.14(\.[1-4])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.14.4" || echo "$BUILD_JAVA_8,1.14.4" ) + elif [[ "$ver" =~ ^1\.15(\.[12])?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.15.2" || echo "$BUILD_JAVA_8,1.15.2" ) + elif [[ "$ver" =~ ^1\.16(\.1)?$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.16.1" || echo "$BUILD_JAVA_8,1.16.1" ) + elif [[ "$ver" =~ ^1\.16\.2$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.16.2" || echo "$BUILD_JAVA_8,1.16.2" ) + elif [[ "$ver" =~ ^1\.16\.[34]$ ]]; then + BUILD_JAVA_8=$( [ -z ${BUILD_JAVA_8+x} ] && echo "1.16.4" || echo "$BUILD_JAVA_8,1.16.4" ) + elif [[ "$ver" =~ ^1\.17(\.*)?$ ]]; then + >&2 echo "Spigot 1.17.x not supported due to java 14 CVEs" + elif [[ "$ver" =~ ^1\.18(\.1)?$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.18.1" || echo "$BUILD_JAVA_17,1.18.1" ) + elif [[ "$ver" =~ ^1\.18\.2$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.18.2" || echo "$BUILD_JAVA_17,1.18.2" ) + elif [[ "$ver" =~ ^1\.19(\.[12])?$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.19.2" || echo "$BUILD_JAVA_17,1.19.2" ) + elif [[ "$ver" =~ ^1\.19\.3$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.19.3" || echo "$BUILD_JAVA_17,1.19.3" ) + elif [[ "$ver" =~ ^1\.19\.4$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.19.4" || echo "$BUILD_JAVA_17,1.19.4" ) + elif [[ "$ver" =~ ^1\.20(\.1)?$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.20.1" || echo "$BUILD_JAVA_17,1.20.1" ) + elif [[ "$ver" =~ ^1\.20\.2$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.20.2" || echo "$BUILD_JAVA_17,1.20.2" ) + elif [[ "$ver" =~ ^1\.20\.[34]$ ]]; then + BUILD_JAVA_17=$( [ -z ${BUILD_JAVA_17+x} ] && echo "1.20.4" || echo "$BUILD_JAVA_17,1.20.4" ) + elif [[ "$ver" =~ ^1\.20\.*$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.20.6" || echo "$BUILD_JAVA_21,1.20.6" ) + elif [[ "$ver" =~ ^1\.21(\.1)?$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.1" || echo "$BUILD_JAVA_21,1.21.1" ) + elif [[ "$ver" =~ ^1\.21\.[23]$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.3" || echo "$BUILD_JAVA_21,1.21.3" ) + elif [[ "$ver" =~ ^1\.21\.4$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.4" || echo "$BUILD_JAVA_21,1.21.4" ) + elif [[ "$ver" =~ ^1\.21\.5$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.5" || echo "$BUILD_JAVA_21,1.21.5" ) + elif [[ "$ver" =~ ^1\.21\.6$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.6" || echo "$BUILD_JAVA_21,1.21.6" ) + elif [[ "$ver" =~ ^1\.21\.[78]$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.8" || echo "$BUILD_JAVA_21,1.21.8" ) + elif [[ "$ver" =~ ^1\.21\.(9|10)$ ]]; then + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "1.21.10" || echo "$BUILD_JAVA_21,1.21.10" ) + else + echo "Unknown version $ver, attempting to build with java 21" + BUILD_JAVA_21=$( [ -z ${BUILD_JAVA_21+x} ] && echo "$ver" || echo "$BUILD_JAVA_21,$ver" ) + fi +done + +if [ ! -z ${BUILD_JAVA_21+x} ]; then + if [ -z ${JAVA_VERSION+x} ]; then + JAVA_VERSION=21 + echo "No java version specified, defaulting to 21" + fi + + echo "Checking for java 21 spigot builds: $BUILD_JAVA_21" + + docker run --rm \ + --user $(id -u):$(id -g) \ + -e MAVEN_CONFIG=/var/maven/.m2 \ + -e M2_PATH=/var/maven/.m2 \ + -e REV="$BUILD_JAVA_21" \ + --volume "$SCRIPT_DIR/build:/build" \ + --volume "$M2_DIRECTORY:/var/maven/.m2" \ + --volume "$SCRIPT_DIR/scripts:/scripts" \ + -- docker.io/maven:3.9.11-eclipse-temurin-21 /scripts/install-spigot.sh +fi + + +if [ ! -z ${BUILD_JAVA_17+x} ]; then + if [ -z ${JAVA_VERSION+x} ]; then + JAVA_VERSION=17 + echo "No java version specified, defaulting to 17" + fi + + echo "Checking for java 17 spigot builds: $BUILD_JAVA_17" + docker run --rm \ + --user $(id -u):$(id -g) \ + -e MAVEN_CONFIG=/var/maven/.m2 \ + -e M2_PATH=/var/maven/.m2 \ + -e REV="$BUILD_JAVA_17" \ + --volume "$SCRIPT_DIR/build:/build" \ + --volume "$M2_DIRECTORY:/var/maven/.m2" \ + --volume "$SCRIPT_DIR/scripts:/scripts" \ + -- docker.io/maven:3.9.11-eclipse-temurin-17 /scripts/install-spigot.sh +fi + +if [ ! -z ${BUILD_JAVA_8+x} ]; then + if [ -z ${JAVA_VERSION+x} ]; then + JAVA_VERSION=8 + echo "No java version specified, defaulting to 8" + fi + + echo "Checking for java 8 spigot builds: $BUILD_JAVA_8" + + docker run --rm \ + --user $(id -u):$(id -g) \ + -e MAVEN_CONFIG=/var/maven/.m2 \ + -e M2_PATH=/var/maven/.m2 \ + -e REV="$BUILD_JAVA_8" \ + --volume "$SCRIPT_DIR/build:/build" \ + --volume "$M2_DIRECTORY:/var/maven/.m2" \ + --volume "$SCRIPT_DIR/scripts:/scripts" \ + -- docker.io/maven:3.9.11-eclipse-temurin-8 /scripts/install-spigot.sh +fi \ No newline at end of file