% 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 9039 100 9039 0 0 39679 0 --:--:-- --:--:-- --:--:-- 39819 % 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 244k 0 --:--:-- --:--:-- --:--:-- 246k % 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 13846 0 13846 0 0 22238 0 --:--:-- --:--:-- --:--:-- 22260 100 154k 0 154k 0 0 220k 0 --:--:-- --:--:-- --:--:-- 220k compressed data: 6687232 to 2914332 Successfully packaged file compressed data: 6059008 to 2633482 Successfully packaged file compressed data: 7204352 to 3026753 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/ releaseType=$2 + releaseType=snapshot packageName=$3 + packageName=Snapshot webDirectory=$4 + webDirectory=Download githubUrl=$5 + githubUrl=The-Powder-Toy/The-Powder-Toy githubBranch=$6 + githubBranch=master versionNum=$7 + versionNum='Snapshot 361' buildId=$8 + buildId=361 commitSha=$9 + commitSha=228d559ccdcecf97fdc11fff721e18d68b7f10aa win64=${10} + win64=powder-snapshot-361-x86_64-win-msvc-static.exe win32=${11} + win32=powder-snapshot-361-i686-win-msvc-static.exe mac=${12} + mac=powder-snapshot-361-x86_64-mac-gcc-static.dmg macArm=${13} + macArm=powder-snapshot-361-arm64-mac-gcc-static.dmg lin64=${14} + lin64=powder-snapshot-361-x86_64-lin-gcc-static wasm=${15} + wasm=powder-snapshot-361-wasm32-ems-static.tar if [[ $packageName == "powder" || $packageName == "powder-beta" ]]; then vanillaRelease=1 else vanillaRelease=0 fi + [[ Snapshot == \p\o\w\d\e\r ]] + [[ Snapshot == \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 + [[ snapshot == \s\n\a\p\s\h\o\t ]] + fullVersionNum='Snapshot 361' if [[ ! -d $workingDirectory ]]; then echo "Working directory does not exist" exit 1 fi + [[ ! -d D:/TPT-releases/ ]] 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/Download ]] pushd $workingDirectory >/dev/null + pushd D:/TPT-releases/ has_mac_arm=0 + has_mac_arm=0 if [[ -f "$macArm" ]]; then has_mac_arm=1 fi + [[ -f powder-snapshot-361-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-snapshot-361-wasm32-ems-static.tar ]] + [[ snapshot == \s\n\a\p\s\h\o\t ]] + has_wasm=1 # Android builds not supported right now rm -f *.apk + rm -f powder-snapshot-361-arm-and-gcc-static.apk powder-snapshot-361-arm64-and-gcc-static.apk powder-snapshot-361-i686-and-gcc-static.apk powder-snapshot-361-x86_64-and-gcc-static.apk rm -rf binaryArchive + rm -rf binaryArchive mkdir binaryArchive + mkdir binaryArchive cp $win64 $win32 $mac $lin64 binaryArchive + cp powder-snapshot-361-x86_64-win-msvc-static.exe powder-snapshot-361-i686-win-msvc-static.exe powder-snapshot-361-x86_64-mac-gcc-static.dmg powder-snapshot-361-x86_64-lin-gcc-static binaryArchive if [[ $has_mac_arm -eq 1 ]]; then cp $macArm binaryArchive fi + [[ 1 -eq 1 ]] + cp powder-snapshot-361-arm64-mac-gcc-static.dmg binaryArchive if [[ $has_wasm -eq 1 ]]; then cp $wasm binaryArchive fi + [[ 1 -eq 1 ]] + cp powder-snapshot-361-wasm32-ems-static.tar binaryArchive curl https://raw.githubusercontent.com/$githubUrl/$githubBranch/README.md -o README.md 2>>package-output.txt + curl https://raw.githubusercontent.com/The-Powder-Toy/The-Powder-Toy/master/README.md -o README.md curl https://raw.githubusercontent.com/$githubUrl/$githubBranch/LICENSE -o LICENSE 2>>package-output.txt + curl https://raw.githubusercontent.com/The-Powder-Toy/The-Powder-Toy/master/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 + [[ snapshot == \s\t\a\b\l\e ]] + [[ snapshot == \b\e\t\a ]] + [[ snapshot == \s\n\a\p\s\h\o\t ]] + curl https://api.github.com/repos/The-Powder-Toy/The-Powder-Toy/commits ++ cat /c/StarHTTP/TPT/Download/Output/latest_commit.log + python /c/Starcatcher/Github-Action-Releases/updatepackager/parsecommits.py a7e71db9a0be356700d747bc96fa72b2790e9d7a + rm commits.json # Package files for usage in-game $packDirectory/packager.exe "$win64" WIN64.ptu >>package-output.txt + /c/Starcatcher/Github-Action-Releases/updatepackager/packager.exe powder-snapshot-361-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-snapshot-361-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-snapshot-361-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-snapshot-361-x86_64-lin-gcc-static powder python $packDirectory/zip.py "$packageName" linux64 + python /c/Starcatcher/Github-Action-Releases/updatepackager/zip.py Snapshot 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 + [[ Snapshot == \S\n\a\p\s\h\o\t ]] + macAppFolderIn='Powder Snapshot.app' + macAppFolderOut='Powder Snapshot.app' + macAppFolderM1Out='Powder Snapshot M1.app' + macDmgOut=Snapshot.dmg + macDmgM1Out='Snapshot M1.dmg' test -d $packDirectory/"$macAppFolderIn" + test -d '/c/Starcatcher/Github-Action-Releases/updatepackager/Powder Snapshot.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-snapshot-361-x86_64-mac-gcc-static.dmg == *.dmg ]] + mv powder-snapshot-361-x86_64-mac-gcc-static.dmg Snapshot.dmg + [[ 1 -eq 1 ]] + mv powder-snapshot-361-arm64-mac-gcc-static.dmg 'Snapshot M1.dmg' # Windows 64 and 32 bit mv "$win64" Powder.exe + mv powder-snapshot-361-x86_64-win-msvc-static.exe Powder.exe mv "$win32" Powder32.exe + mv powder-snapshot-361-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 Snapshot win64 python $packDirectory/zip.py "$packageName" win32 + python /c/Starcatcher/Github-Action-Releases/updatepackager/zip.py Snapshot 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/Download 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 Snapshot.zip '/c/StarHTTP/TPT/Download/Older/Snapshot 361.zip' + cp 'Snapshot win32.zip' '/c/StarHTTP/TPT/Download/Older/Snapshot 361 win32.zip' + cp Snapshot.dmg '/c/StarHTTP/TPT/Download/Older/Snapshot 361.dmg' + cp 'Snapshot linux64.zip' '/c/StarHTTP/TPT/Download/Older/Snapshot 361 linux64.zip' mv "$packageName.zip" "$packageName win32.zip" "$packageName.dmg" "$packageName linux64.zip" /c/StarHTTP/TPT/"$webDirectory" + mv Snapshot.zip 'Snapshot win32.zip' Snapshot.dmg 'Snapshot linux64.zip' /c/StarHTTP/TPT/Download 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 'Snapshot M1.dmg' '/c/StarHTTP/TPT/Download/Older/Snapshot 361 M1.dmg' + mv 'Snapshot M1.dmg' /c/StarHTTP/TPT/Download 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 + [[ 1 -eq 1 ]] + cp powder-snapshot-361-wasm32-ems-static.tar /c/StarHTTP/TPT/Download/ + [[ ! 0 -eq 1 ]] + mv powder-snapshot-361-wasm32-ems-static.tar '/c/StarHTTP/TPT/Download/Older/Snapshot 361 wasm.tar' 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 228d559ccdcecf97fdc11fff721e18d68b7f10aa + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/361\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/361\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/361\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/361\t/' + cat changelog.txt + grep -ve '^#' + grep -ve '^[[:space:]]*$' + sed -e 's/^/361\t/' + echo 'Done updating changelogs' + [[ snapshot == \s\n\a\p\s\h\o\t ]] + rm changelog.txt 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/The-Powder-Toy/The-Powder-Toy/archive/refs/heads/master.zip -o /c/StarHTTP/TPT/Download/Snapshot-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 1107k 0 1107k 0 0 1449k 0 --:--:-- --:--:-- --:--:-- 1449k 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/Download/Snapshot-src.zip '/c/StarHTTP/TPT/Download/Older/Snapshot 361-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 ]] + [[ snapshot == \s\n\a\p\s\h\o\t ]] + echo 'msg #powder-dev Snapshot 361 released!' + /c/Starcatcher/Github-Action-Releases/updatepackager/nc.exe -w 1 localhost 9876 exit 0 + exit 0 on_exit + on_exit + [[ 1 -eq 0 ]]