Skip to content

Commit

Permalink
fix cicd
Browse files Browse the repository at this point in the history
  • Loading branch information
tier940 committed Mar 23, 2023
1 parent 0d29471 commit 7596f7a
Show file tree
Hide file tree
Showing 10 changed files with 234 additions and 28 deletions.
25 changes: 14 additions & 11 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Deploy preview modpack
on:
push:
tags:
- '*-preview'
- '*-pr-*'

jobs:
deploy:
Expand All @@ -12,20 +12,19 @@ jobs:
uses: actions/checkout@v3

- name: Get the version
id: get_version
run: |
echo ::set-output name=VERSION::$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $1}')
echo ::set-output name=LEVEL::$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $2}')
echo VERSION=$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $1}') >> $GITHUB_ENV
echo PR_VERSION=$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $3}') >> $GITHUB_ENV
- name: Set the version
run: |
MODPACKVERSION=${{ steps.get_version.outputs.VERSION }}
MODPACKVERSION=${{ env.VERSION }}
sed -i -e "s/MODPACKVERSION/${MODPACKVERSION}/g" ./manifest.json
sed -i -e "s/MODPACKVERSION/${MODPACKVERSION}/g" ./instance.cfg
- name: Archive Release CF
run: |
zip -r ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-cf.zip ./manifest.json ./modlist.html ./overrides/config/ ./overrides/mods/ ./overrides/resources/ ./overrides/scripts/
zip -r ./GTExpert-${{ env.VERSION }}-pr-${{ env.PR_VERSION }}-cf.zip ./manifest.json ./modlist.html ./overrides/bansoukou/ ./overrides/config/ ./overrides/mods/ ./overrides/scripts/
- name: Setup Python
uses: actions/setup-python@v4
Expand All @@ -46,12 +45,16 @@ jobs:
- name: Archive Release MMC
run: |
mv -vf ./overrides/ .minecraft/
zip -r ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-mmc.zip ./mmc-pack.json ./instance.cfg .minecraft/
zip -r ./GTExpert-${{ env.VERSION }}-pr-${{ env.PR_VERSION }}-mmc.zip ./mmc-pack.json ./instance.cfg .minecraft/
- name: Move Server Files
run: |
mv -vf ./serverfiles/* ./
- name: Archive Release Server
run: |
mv -vf .minecraft/* ./
zip -r ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-server.zip ./config/ ./mods/ ./resources/ ./scripts/
zip -r ./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-server.zip ./PleaseRead.txt ./Install.bat ./Install.sh ./ServerStart.bat ./ServerStart.sh ./settings.bat ./settings.sh ./TmuxServer.sh ./bansoukou/ ./config/ ./mods/ ./scripts/
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
Expand All @@ -60,6 +63,6 @@ jobs:
prerelease: true
generate_release_notes: true
files: |
./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-cf.zip
./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-mmc.zip
./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-server.zip
./GTExpert-${{ env.VERSION }}-pr-${{ env.PR_VERSION }}-cf.zip
./GTExpert-${{ env.VERSION }}-pr-${{ env.PR_VERSION }}-mmc.zip
./GTExpert-${{ env.VERSION }}-pr-${{ env.PR_VERSION }}-server.zip
35 changes: 18 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,19 @@ jobs:
uses: actions/checkout@v3

- name: Get the version
id: get_version
run: |
echo ::set-output name=VERSION::$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $1}')
echo ::set-output name=LEVEL::$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $2}')
echo VERSION=$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $1}') >> $GITHUB_ENV
echo LEVEL=$(echo ${GITHUB_REF} | sed -e 's#refs/tags/##g' | awk -F'-' '{print $2}') >> $GITHUB_ENV
- name: Set the version
run: |
MODPACKVERSION=${{ steps.get_version.outputs.VERSION }}
MODPACKVERSION=${{ env.VERSION }}
sed -i -e "s/MODPACKVERSION/${MODPACKVERSION}/g" ./manifest.json
sed -i -e "s/MODPACKVERSION/${MODPACKVERSION}/g" ./instance.cfg
- name: Archive Release CF
run: |
zip -r ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-cf.zip ./manifest.json ./modlist.html ./overrides/config/ ./overrides/mods/ ./overrides/resources/ ./overrides/scripts/
zip -r ./GTExpert-${{ env.VERSION }}-pr-${{ env.PR_VERSION }}-cf.zip ./manifest.json ./modlist.html ./overrides/bansoukou/ ./overrides/config/ ./overrides/mods/ ./overrides/scripts/
- name: Setup Python
uses: actions/setup-python@v4
Expand All @@ -48,12 +47,16 @@ jobs:
- name: Archive Release MMC
run: |
mv -vf ./overrides/ .minecraft/
zip -r ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-mmc.zip ./mmc-pack.json ./instance.cfg .minecraft/
zip -r ./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-mmc.zip ./mmc-pack.json ./instance.cfg .minecraft/
- name: Move Server Files
run: |
mv -vf ./serverfiles/* ./
- name: Archive Release Server
run: |
mv -vf .minecraft/* ./
zip -r ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-server.zip ./config/ ./mods/ ./resources/ ./scripts/
zip -r ./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-server.zip ./PleaseRead.txt ./Install.bat ./Install.sh ./ServerStart.bat ./ServerStart.sh ./settings.bat ./settings.sh ./TmuxServer.sh ./bansoukou/ ./config/ ./mods/ ./scripts/
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
Expand All @@ -62,20 +65,18 @@ jobs:
prerelease: false
generate_release_notes: true
files: |
./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-cf.zip
./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-mmc.zip
./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-server.zip
./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-cf.zip
./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-mmc.zip
./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-server.zip
- name: Upload Curseforge
uses: ./.github/actions/curseforge-modpack-upload
with:
api-token: ${{ secrets.CF_API_TOKEN }}
project-id: '247653'
modpack-path: ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-cf.zip
modpack-server-path: ./GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-server.zip
changelog: 'Check the changes here. [Github - CHANGELOG.md](https://github.com/GTModpackTeam/gregtech-expert/blob/master/CHANGELOG.md "")'
changelog-format: markdown
modpack-path: ./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-cf.zip
modpack-server-path: ./GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-server.zip
game-version: '628' # 628 or 6756 (Accepted at either)
display-name: GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}
server-display-name: GTExpert-${{ steps.get_version.outputs.VERSION }}-${{ steps.get_version.outputs.LEVEL }}-server
release-type: ${{ steps.get_version.outputs.LEVEL }}
display-name: GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}
server-display-name: GTExpert-${{ env.VERSION }}-${{ env.LEVEL }}-server
release-type: ${{ env.LEVEL }}
11 changes: 11 additions & 0 deletions serverfiles/Install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@echo off

call settings.bat

:install_files
echo Installing Forge and required jars.
java -jar %INSTALL_JAR% --installServer > NUL 2>&1
echo Done!
exit /B

goto install_files
12 changes: 12 additions & 0 deletions serverfiles/Install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

# Read the settings.
. ./settings.sh

install_files() {
java -jar ${INSTALL_JAR} --installServer > /dev/null 2>&1
}

echo "Installing Forge and required jars."
install_files
echo "Done!"
5 changes: 5 additions & 0 deletions serverfiles/PleaseRead.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1. Please Forge download for forge-1.7.10-10.13.4.1614-1.7.10-installer.jar
2. Edit settings.bat or settings.sh
3. Start Install.bat or Install.sh
4. ServerStart.bat or ServerStart.sh push
5. Enjoy
11 changes: 11 additions & 0 deletions serverfiles/ServerStart.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@echo off

call settings.bat

:start_server
echo Starting GregTech Expert Server...
java -server -Xms%MIN_RAM% -Xmx%MAX_RAM% -XX:MaxMetaspaceSize=%MAX_MetaspaceSize% %JAVA_PARAMETERS% -jar %SERVER_JAR% -XX:OnOutOfMemoryError="kill -9 %p" nogui
pause
exit /B

goto start_server
12 changes: 12 additions & 0 deletions serverfiles/ServerStart.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

# Read the settings.
. ./settings.sh

# Start the server.
start_server() {
java -server -Xms${MIN_RAM} -Xmx${MAX_RAM} -XX:MaxMetaspaceSize=${Max_MetaspaceSize} ${JAVA_PARAMETERS} -XX:OnOutOfMemoryError="kill -9 %p" -jar ${SERVER_JAR} nogui
}

echo "Starting Starting GregTech Expert Server..."
start_server
133 changes: 133 additions & 0 deletions serverfiles/TmuxServer.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#!/bin/bash
# Minecraft service that starts the server in a tmux session.
# https://github.com/tier940/minecraft-tmux

JAVA_PATH="/usr/lib/jvm/java-8-openjdk/bin/java"
TMUX_SOCKET="steam"
TMUX_SESSION="gte"
MC_HOME="/home/minecraft/gte/"
MC_JAR_FILE="forge-1.12.2-14.23.5.2860.jar"
MC_MIN_RAM="2G"
MC_MAX_RAM="8G"
MC_JVM_PARAMETERS="-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=20 -Dlog4j.configurationFile=log4j2_112-116.xml"

is_server_running() {
/usr/bin/tmux -L ${TMUX_SOCKET} has-session -t ${TMUX_SESSION} > /dev/null 2>&1
return ${?}
}

mc_command() {
cmd="$1"
/usr/bin/tmux -L ${TMUX_SOCKET} send-keys -t ${TMUX_SESSION}.0 "$cmd" ENTER
return ${?}
}

start_server() {
if is_server_running; then
echo "Server already running"
return 1
else
echo "Starting minecraft server in tmux session"
/usr/bin/tmux -L ${TMUX_SOCKET} new-session -c ${MC_HOME} -s ${TMUX_SESSION} -d ${JAVA_PATH} -Xms${MC_MIN_RAM} -Xmx${MC_MAX_RAM} ${MC_JVM_PARAMETERS} -jar ${MC_HOME}$MC_JAR_FILE
return ${?}
fi
}

stop_server() {
if ! is_server_running; then
echo "Server is not running!"
return 1
else
# Warn players
echo "Warning players"
mc_command "title @a times 3 14 3"
for i in {60..1}; do
mc_command "title @a subtitle {\"text\":\"in ${i} seconds\",\"color\":\"gray\"}"
mc_command "title @a title {\"text\":\"Shutting down\",\"color\":\"dark_red\"}"
echo "Server stop in ${i} seconds"
sleep 1
done

# Issue shutdown
echo "Save all"
mc_command "save-all"
sleep 0
echo "Stopping server"
mc_command "stop"
if [[ ${?} -ne 0 ]]; then
echo "Failed to send stop command to server"
return 1
fi

# Wait for server to stop
wait=0
while is_server_running; do
sleep 1

wait=$((wait+1))
if [ ${wait} -gt 90 ]; then
echo "Could not stop server, timeout"
return 1
fi
done
return 0
fi
}

restart_server() {
if ! is_server_running; then
echo "Server is not running!"
return 1
else
if stop_server; then
start_server
return ${?}
else
echo "Failed server restart"
return 1
fi
fi
}

reload_server() {
/usr/bin/tmux -L ${TMUX_SOCKET} send-keys -t ${TMUX_SESSION}.0 "reload" ENTER
return ${?}
}

attach_session() {
if ! is_server_running; then
echo "Cannot attach to server session, server not running"
return ${?}
else
/usr/bin/tmux -L ${TMUX_SOCKET} attach-session -t ${TMUX_SESSION}
return 0
fi
}

case "$1" in
start)
start_server
attach_session
exit ${?}
;;
stop)
stop_server
exit ${?}
;;
restart)
restart_server
exit ${?}
;;
reload)
reload_server
exit ${?}
;;
attach)
attach_session
exit ${?}
;;
*)
echo "Usage: ${0} {start|stop|restart|reload|attach}"
exit 2
;;
esac
9 changes: 9 additions & 0 deletions serverfiles/settings.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
REM Don't edit these values unless you know what you are doing.
set INSTALL_JAR=forge-1.7.10-10.13.4.1614-1.7.10-installer.jar
set SERVER_JAR=forge-1.7.10-10.13.4.1614-1.7.10-universal.jar

REM You can edit these values if you wish.
set MIN_RAM=1024M
set MAX_RAM=4096M
set MAX_MetaspaceSize=512M
set JAVA_PARAMETERS=-XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:MaxTenuringThreshold=15 -XX:MaxGCPauseMillis=30 -XX:GCPauseIntervalMillis=150 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:+UseFastAccessorMethods -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:+AggressiveOpts -XX:ReservedCodeCacheSize=2048m -XX:+UseCodeCacheFlushing -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=10 -Djava.net.preferIPv4Stack=true
9 changes: 9 additions & 0 deletions serverfiles/settings.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Don't edit these values unless you know what you are doing.
export INSTALL_JAR="forge-1.7.10-10.13.4.1614-1.7.10-installer.jar"
export SERVER_JAR="forge-1.7.10-10.13.4.1614-1.7.10-universal.jar"

# You can edit these values if you wish.
export MIN_RAM="1024M"
export MAX_RAM="4096M"
export Max_MetaspaceSize="512M"
export JAVA_PARAMETERS="-XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:MaxTenuringThreshold=15 -XX:MaxGCPauseMillis=30 -XX:GCPauseIntervalMillis=150 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:+UseFastAccessorMethods -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:+AggressiveOpts -XX:ReservedCodeCacheSize=2048m -XX:+UseCodeCacheFlushing -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=10 -Djava.net.preferIPv4Stack=true"

0 comments on commit 7596f7a

Please sign in to comment.