% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 11438 100 11438 0 0 50388 0 --:--:-- --:--:-- --:--:-- 50835 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 35147 100 35147 0 0 252k 0 --:--:-- --:--:-- --:--:-- 256k % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 98 100 98 0 0 785 0 --:--:-- --:--:-- --:--:-- 796 compressed data: 6896640 to 3008878 Successfully packaged file compressed data: 6251008 to 2711361 Successfully packaged file compressed data: 7487000 to 3119396 Successfully packaged file Done packaging update files Done packing Linux version Done packing Windows versions Done moving files to web directory Done updating changelogs Errors and uncaught output from package.sh: set -e + set -e success=0 + success=0 on_exit() { if [[ $success -eq 0 ]]; then outputFolder="https://starcatcher.us/TPT/$webDirectory/Output" if [[ $vanillaRelease -eq 1 ]]; then outputFolder="https://starcatcher.us/TPT/$webDirectory/" fi echo "msg #powder-dev Package script failed, details at $outputFolder" | $packDirectory/nc.exe -w 1 localhost 9876 fi } trap on_exit 0 + trap on_exit 0 pushd `dirname $0` >/dev/null ++ dirname 'C:\Starcatcher\Github-Action-Releases\updatepackager\package.sh' + pushd 'C:\Starcatcher\Github-Action-Releases\updatepackager' packDirectory=$PWD + packDirectory=/c/Starcatcher/Github-Action-Releases/updatepackager workingDirectory=$1 + workingDirectory=D:/TPT-releases/mods/SubframeIDE/ releaseType=$2 + releaseType=stable packageName=$3 + packageName=SubframeIDE webDirectory=$4 + webDirectory=mods/SubframeIDE githubUrl=$5 + githubUrl=krawthekrow/TPT-Subframe-Mod githubBranch=$6 + githubBranch=release versionNum=$7 + versionNum=1.16 buildId=$8 + buildId=23 commitSha=$9 + commitSha=703b9e2a2ef4171849e5b201f40bb0425706ebb3 win64=${10} + win64=powder-v1.16.23-x86_64-win-msvc-static.exe win32=${11} + win32=powder-v1.16.23-i686-win-msvc-static.exe mac=${12} + mac=powder-v1.16.23-x86_64-mac-gcc-static.dmg macArm=${13} + macArm=powder-v1.16.23-arm64-mac-gcc-static.dmg lin64=${14} + lin64=powder-v1.16.23-x86_64-lin-gcc-static wasm=${15} + wasm=powder-v1.16.23-wasm32-ems-static.tar if [[ $packageName == "powder" || $packageName == "powder-beta" ]]; then vanillaRelease=1 else vanillaRelease=0 fi + [[ SubframeIDE == \p\o\w\d\e\r ]] + [[ SubframeIDE == \p\o\w\d\e\r\-\b\e\t\a ]] + vanillaRelease=0 if [[ $releaseType == "snapshot" ]]; then fullVersionNum="Snapshot $buildId" else fullVersionNum="$versionNum (build $buildId)" fi + [[ stable == \s\n\a\p\s\h\o\t ]] + fullVersionNum='1.16 (build 23)' if [[ ! -d $workingDirectory ]]; then echo "Working directory does not exist" exit 1 fi + [[ ! -d D:/TPT-releases/mods/SubframeIDE/ ]] if [[ ! -d /c/StarHTTP/TPT/$webDirectory ]]; then if [[ $vanillaRelease -eq 1 ]]; then # Vanilla releases use a different folder per build id, create it automatically mkdir /c/StarHTTP/TPT/"$webDirectory" else echo "Web directory does not exist" exit 1 fi fi + [[ ! -d /c/StarHTTP/TPT/mods/SubframeIDE ]] pushd $workingDirectory >/dev/null + pushd D:/TPT-releases/mods/SubframeIDE/ has_mac_arm=0 + has_mac_arm=0 if [[ -f "$macArm" ]]; then has_mac_arm=1 fi + [[ -f powder-v1.16.23-arm64-mac-gcc-static.dmg ]] + has_mac_arm=1 # Check for wasm, if unsupported type then delete it has_wasm=0 + has_wasm=0 if [[ -f "$wasm" && ( $releaseType == "snapshot" || $vanillaRelease -eq 1 ) ]]; then has_wasm=1 else rm -f $wasm fi + [[ -f powder-v1.16.23-wasm32-ems-static.tar ]] + [[ stable == \s\n\a\p\s\h\o\t ]] + [[ 0 -eq 1 ]] + rm -f powder-v1.16.23-wasm32-ems-static.tar # Android builds not supported right now rm -f *.apk + rm -f powder-v1.16.23-arm-and-gcc-static.apk powder-v1.16.23-arm64-and-gcc-static.apk powder-v1.16.23-i686-and-gcc-static.apk powder-v1.16.23-x86_64-and-gcc-static.apk rm -rf binaryArchive + rm -rf binaryArchive mkdir binaryArchive + mkdir binaryArchive cp $win64 $win32 $mac $lin64 binaryArchive + cp powder-v1.16.23-x86_64-win-msvc-static.exe powder-v1.16.23-i686-win-msvc-static.exe powder-v1.16.23-x86_64-mac-gcc-static.dmg powder-v1.16.23-x86_64-lin-gcc-static binaryArchive if [[ $has_mac_arm -eq 1 ]]; then cp $macArm binaryArchive fi + [[ 1 -eq 1 ]] + cp powder-v1.16.23-arm64-mac-gcc-static.dmg binaryArchive if [[ $has_wasm -eq 1 ]]; then cp $wasm binaryArchive fi + [[ 0 -eq 1 ]] curl https://raw.githubusercontent.com/$githubUrl/$githubBranch/README.md -o README.md 2>>package-output.txt + curl https://raw.githubusercontent.com/krawthekrow/TPT-Subframe-Mod/release/README.md -o README.md curl https://raw.githubusercontent.com/$githubUrl/$githubBranch/LICENSE -o LICENSE 2>>package-output.txt + curl https://raw.githubusercontent.com/krawthekrow/TPT-Subframe-Mod/release/LICENSE -o LICENSE # Download or generate changelog.txt if [[ $releaseType == "stable" || $releaseType == "beta" ]]; then if [[ ! $vanillaRelease -eq 1 ]]; then if [[ -f changelog.txt ]]; then mv changelog.txt changelog-old.txt fi curl https://raw.githubusercontent.com/$githubUrl/$githubBranch/changelog.txt -o changelog.txt 2>>package-output.txt if [[ -f changelog-old.txt ]]; then if diff -q changelog.txt changelog-old.txt >/dev/null; then echo "Please update changelog.txt before releasing a build on the Starcatcher update server." rm changelog-old.txt exit 1 fi rm changelog-old.txt fi fi elif [[ $releaseType == "snapshot" ]]; then # Snapshots curl https://api.github.com/repos/The-Powder-Toy/The-Powder-Toy/commits >commits.json 2>>package-output.txt python $packDirectory/parsecommits.py $(cat /c/StarHTTP/TPT/"$webDirectory"/Output/latest_commit.log) rm commits.json else echo "Only stable and snapshot release types supported" exit 1 fi + [[ stable == \s\t\a\b\l\e ]] + [[ ! 0 -eq 1 ]] + [[ -f changelog.txt ]] + mv changelog.txt changelog-old.txt + curl https://raw.githubusercontent.com/krawthekrow/TPT-Subframe-Mod/release/changelog.txt -o changelog.txt + [[ -f changelog-old.txt ]] + diff -q changelog.txt changelog-old.txt + rm changelog-old.txt # Package files for usage in-game $packDirectory/packager.exe "$win64" WIN64.ptu >>package-output.txt + /c/Starcatcher/Github-Action-Releases/updatepackager/packager.exe powder-v1.16.23-x86_64-win-msvc-static.exe WIN64.ptu $packDirectory/packager.exe "$win32" WIN32.ptu >>package-output.txt + /c/Starcatcher/Github-Action-Releases/updatepackager/packager.exe powder-v1.16.23-i686-win-msvc-static.exe WIN32.ptu #$packDirectory/packager.exe "$mac" MACOS.ptu >>package-output.txt #if [[ $has_mac_arm -eq 1 ]]; then # $packDirectory/packager.exe "$macArm" MACOSARM.ptu >>package-output.txt #fi $packDirectory/packager.exe "$lin64" LIN64.ptu >>package-output.txt + /c/Starcatcher/Github-Action-Releases/updatepackager/packager.exe powder-v1.16.23-x86_64-lin-gcc-static LIN64.ptu echo "Done packaging update files" >>package-output.txt + echo 'Done packaging update files' # Linux 64 bit mv "$lin64" powder + mv powder-v1.16.23-x86_64-lin-gcc-static powder python $packDirectory/zip.py "$packageName" linux64 + python /c/Starcatcher/Github-Action-Releases/updatepackager/zip.py SubframeIDE linux64 rm powder + rm powder echo "Done packing Linux version" >>package-output.txt + echo 'Done packing Linux version' # Mac OS macAppFolderIn= + macAppFolderIn= macAppFolder= + macAppFolder= if [[ $packageName == "Snapshot" ]]; then macAppFolderIn="Powder Snapshot.app" macAppFolderOut=$macAppFolderIn macAppFolderM1Out="Powder Snapshot M1.app" macDmgOut="Snapshot.dmg" macDmgM1Out="Snapshot M1.dmg" elif [[ $packageName == "powder" ]]; then macAppFolderIn=Powder.app macAppFolderOut=$macAppFolderIn macAppFolderM1Out="Powder M1.app" macDmgOut="Powder.dmg" macDmgM1Out="Powder M1.dmg" else macAppFolderIn="Powder mods.app" macAppFolderOut="$packageName.app" macAppFolderM1Out="$packageName M1.app" macDmgOut="$packageName.dmg" macDmgM1Out="$packageName M1.dmg" fi + [[ SubframeIDE == \S\n\a\p\s\h\o\t ]] + [[ SubframeIDE == \p\o\w\d\e\r ]] + macAppFolderIn='Powder mods.app' + macAppFolderOut=SubframeIDE.app + macAppFolderM1Out='SubframeIDE M1.app' + macDmgOut=SubframeIDE.dmg + macDmgM1Out='SubframeIDE M1.dmg' test -d $packDirectory/"$macAppFolderIn" + test -d '/c/Starcatcher/Github-Action-Releases/updatepackager/Powder mods.app' pack_mac() { local filename=$1 local appFolderIn=$2 local appFolderOut=$3 local dmgOut=$4 mv "$filename" powder-x #$packDirectory/rcodesign sign --pem-source $packDirectory/macsigningkey.crt --code-signature-flags runtime --team-name "The Powder Toy" powder-x mkdir MacDMG cp -r $packDirectory/"$appFolderIn" MacDMG/"$appFolderOut" cp powder-x MacDMG/"$appFolderOut"/Contents/MacOS cp README.md MacDMG cp LICENSE MacDMG sed -i -e "s/MAJOR_VERSION/$versionNum/" MacDMG/"$appFolderOut"/Contents/Info.plist sed -i -e "s/FULL_VERSION/$fullVersionNum/" MacDMG/"$appFolderOut"/Contents/Info.plist #$packDirectory/rcodesign sign --pem-source $packDirectory/macsigningkey.crt --code-signature-flags runtime --team-name "The Powder Toy" MacDMG/"$appFolderOut"/ #/c/Starcatcher/Ubuntu2/ubuntu2004.exe run genisoimage -D -V "The-Powder-Toy Snapshots" -no-pad -r -apple -o powder-osx-uncompressed.dmg "MacDMG" >/d/test22.txt 2>&1 #/c/Starcatcher/Ubuntu2/ubuntu2004.exe run dmg dmg powder-osx-uncompressed.dmg Snapshot.dmg >/d/test3.txt 2>&1 echo "dmg $appFolderOut $workingDirectory $dmgOut" | $packDirectory/nc.exe -w 5 localhost 9876 >>package-output.txt rm -r MacDMG powder-osx-uncompressed.dmg powder-x #$packDirectory/rcodesign sign --pem-source $packDirectory/macsigningkey.crt --code-signature-flags runtime --team-name "The Powder Toy" "$dmgOut" #$packDirectory/rcodesign notarize --api-issuer 68911d4c-110c-4172-b9f7-b7efa30f9680 --api-key DEADBEEF "$dmgOut" } if [[ "$mac" == *.dmg ]]; then mv "$mac" "$macDmgOut" if [[ $has_mac_arm -eq 1 ]]; then mv "$macArm" "$macDmgM1Out" fi else pack_mac "$mac" "$macAppFolderIn" "$macAppFolderOut" "$macDmgOut" if [[ $has_mac_arm -eq 1 ]]; then pack_mac "$macArm" "$macAppFolderIn" "$macAppFolderM1Out" "$macDmgM1Out" fi fi + [[ powder-v1.16.23-x86_64-mac-gcc-static.dmg == *.dmg ]] + mv powder-v1.16.23-x86_64-mac-gcc-static.dmg SubframeIDE.dmg + [[ 1 -eq 1 ]] + mv powder-v1.16.23-arm64-mac-gcc-static.dmg 'SubframeIDE M1.dmg' # Windows 64 and 32 bit mv "$win64" Powder.exe + mv powder-v1.16.23-x86_64-win-msvc-static.exe Powder.exe mv "$win32" Powder32.exe + mv powder-v1.16.23-i686-win-msvc-static.exe Powder32.exe mv README.md readme.txt + mv README.md readme.txt mv LICENSE license.txt + mv LICENSE license.txt python $packDirectory/zip.py "$packageName" win64 + python /c/Starcatcher/Github-Action-Releases/updatepackager/zip.py SubframeIDE win64 python $packDirectory/zip.py "$packageName" win32 + python /c/Starcatcher/Github-Action-Releases/updatepackager/zip.py SubframeIDE win32 rm Powder.exe Powder32.exe + rm Powder.exe Powder32.exe rm readme.txt license.txt + rm readme.txt license.txt echo "Done packing Windows versions" >>package-output.txt + echo 'Done packing Windows versions' # Move files into appropriate directories on server # Note: This relies on Window's case-insensitive filenames for official releases mv WIN64.ptu WIN32.ptu LIN64.ptu /c/StarHTTP/TPT/"$webDirectory" + mv WIN64.ptu WIN32.ptu LIN64.ptu /c/StarHTTP/TPT/mods/SubframeIDE if [[ ! $vanillaRelease -eq 1 ]]; then # For everything but vanilla releases, copy into Output/ and Older/ folders cp "$packageName.zip" "/c/StarHTTP/TPT/$webDirectory/Older/$packageName $buildId.zip" cp "$packageName win32.zip" "/c/StarHTTP/TPT/$webDirectory/Older/$packageName $buildId win32.zip" cp "$packageName.dmg" "/c/StarHTTP/TPT/$webDirectory/Older/$packageName $buildId.dmg" cp "$packageName linux64.zip" "/c/StarHTTP/TPT/$webDirectory/Older/$packageName $buildId linux64.zip" fi + [[ ! 0 -eq 1 ]] + cp SubframeIDE.zip '/c/StarHTTP/TPT/mods/SubframeIDE/Older/SubframeIDE 23.zip' + cp 'SubframeIDE win32.zip' '/c/StarHTTP/TPT/mods/SubframeIDE/Older/SubframeIDE 23 win32.zip' + cp SubframeIDE.dmg '/c/StarHTTP/TPT/mods/SubframeIDE/Older/SubframeIDE 23.dmg' + cp 'SubframeIDE linux64.zip' '/c/StarHTTP/TPT/mods/SubframeIDE/Older/SubframeIDE 23 linux64.zip' mv "$packageName.zip" "$packageName win32.zip" "$packageName.dmg" "$packageName linux64.zip" /c/StarHTTP/TPT/"$webDirectory" + mv SubframeIDE.zip 'SubframeIDE win32.zip' SubframeIDE.dmg 'SubframeIDE linux64.zip' /c/StarHTTP/TPT/mods/SubframeIDE if [[ $has_mac_arm -eq 1 ]]; then echo "Moving MacOS M1 files" #mv MACOSARM.ptu /c/StarHTTP/TPT/"$webDirectory" if [[ ! $vanillaRelease -eq 1 ]]; then cp "$packageName M1.dmg" "/c/StarHTTP/TPT/$webDirectory/Older/$packageName $buildId M1.dmg" fi mv "$packageName M1.dmg" /c/StarHTTP/TPT/"$webDirectory" fi + [[ 1 -eq 1 ]] + echo 'Moving MacOS M1 files' Moving MacOS M1 files + [[ ! 0 -eq 1 ]] + cp 'SubframeIDE M1.dmg' '/c/StarHTTP/TPT/mods/SubframeIDE/Older/SubframeIDE 23 M1.dmg' + mv 'SubframeIDE M1.dmg' /c/StarHTTP/TPT/mods/SubframeIDE if [[ $has_wasm -eq 1 ]]; then #if [[ $releaseType == "snapshot" ]]; then # tar -xf $wasm -C /c/Starcatcher/TPT-Website/wasm # mv /c/Starcatcher/TPT-Website/wasm/powdersnapshot.js /c/Starcatcher/TPT-Website/wasm/powder.js # mv /c/Starcatcher/TPT-Website/wasm/powdersnapshot.wasm /c/Starcatcher/TPT-Website/wasm/powder.wasm # mv /c/Starcatcher/TPT-Website/wasm/powdersnapshot.worker.js /c/Starcatcher/TPT-Website/wasm/powder.worker.js #fi cp $wasm /c/StarHTTP/TPT/"$webDirectory"/ if [[ ! $vanillaRelease -eq 1 ]]; then mv $wasm /c/StarHTTP/TPT/"$webDirectory"/Older/"$packageName $buildId wasm.tar" fi fi + [[ 0 -eq 1 ]] echo "Done moving files to web directory" >>package-output.txt + echo 'Done moving files to web directory' # Update changelogs if [[ ! $vanillaRelease -eq 1 ]]; then echo $commitSha > /c/StarHTTP/TPT/"$webDirectory"/Output/latest_commit.log cat changelog.txt | grep -ve "^#" | grep -ve "^[[:space:]]*$" | sed -e "s/^/$buildId\t/" >>/c/StarHTTP/TPT/"$webDirectory"/WIN64.info cat changelog.txt | grep -ve "^#" | grep -ve "^[[:space:]]*$" | sed -e "s/^/$buildId\t/" >>/c/StarHTTP/TPT/"$webDirectory"/WIN32.info cat changelog.txt | grep -ve "^#" | grep -ve "^[[:space:]]*$" | sed -e "s/^/$buildId\t/" >>/c/StarHTTP/TPT/"$webDirectory"/MACOS.info cat changelog.txt | grep -ve "^#" | grep -ve "^[[:space:]]*$" | sed -e "s/^/$buildId\t/" >>/c/StarHTTP/TPT/"$webDirectory"/MACOSARM.info cat changelog.txt | grep -ve "^#" | grep -ve "^[[:space:]]*$" | sed -e "s/^/$buildId\t/" >>/c/StarHTTP/TPT/"$webDirectory"/LIN64.info echo "Done updating changelogs" >>package-output.txt if [[ $releaseType == "snapshot" ]]; then rm changelog.txt fi fi + [[ ! 0 -eq 1 ]] + echo 703b9e2a2ef4171849e5b201f40bb0425706ebb3 + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/23\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/23\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/23\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/23\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/23\t/' + echo 'Done updating changelogs' + [[ stable == \s\n\a\p\s\h\o\t ]] echo "Archiving source code" + echo 'Archiving source code' Archiving source code curl -L https://github.com/$githubUrl/archive/refs/heads/$githubBranch.zip -o /c/StarHTTP/TPT/"$webDirectory"/"$packageName-src.zip" + curl -L https://github.com/krawthekrow/TPT-Subframe-Mod/archive/refs/heads/release.zip -o /c/StarHTTP/TPT/mods/SubframeIDE/SubframeIDE-src.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 43495 0 43495 0 0 49185 0 --:--:-- --:--:-- --:--:-- 49185 100 1123k 0 1123k 0 0 1059k 0 --:--:-- 0:00:01 --:--:-- 6174k if [[ ! $vanillaRelease -eq 1 ]]; then cp /c/StarHTTP/TPT/"$webDirectory"/"$packageName-src.zip" /c/StarHTTP/TPT/"$webDirectory"/Older/"$packageName $buildId-src.zip" fi + [[ ! 0 -eq 1 ]] + cp /c/StarHTTP/TPT/mods/SubframeIDE/SubframeIDE-src.zip '/c/StarHTTP/TPT/mods/SubframeIDE/Older/SubframeIDE 23-src.zip' echo "Source code archived" + echo 'Source code archived' Source code archived success=1 + success=1 echo "Release complete" + echo 'Release complete' Release complete if [[ $vanillaRelease -eq 1 ]]; then echo "msg #powder-dev $fullVersionNum finished packaging" | $packDirectory/nc.exe -w 1 localhost 9876 elif [[ $releaseType == "snapshot" ]]; then echo "msg #powder-dev $fullVersionNum released!" | $packDirectory/nc.exe -w 1 localhost 9876 else echo "msg #powder-dev $packageName $fullVersionNum released!" | $packDirectory/nc.exe -w 1 localhost 9876 fi + [[ 0 -eq 1 ]] + [[ stable == \s\n\a\p\s\h\o\t ]] + echo 'msg #powder-dev SubframeIDE 1.16 (build 23) released!' + /c/Starcatcher/Github-Action-Releases/updatepackager/nc.exe -w 1 localhost 9876 exit 0 + exit 0 on_exit + on_exit + [[ 1 -eq 0 ]]