Simplify CI publish-release script

This commit is contained in:
peelz
2023-05-08 11:07:42 -04:00
parent bf988aa9ef
commit 1b4cc62bcc
+20 -19
View File
@@ -8,6 +8,10 @@ on:
env: env:
ARTIFACTS_DIR: 2049ef39-42a2-46d2-b513-ee6d2e3a7b15 ARTIFACTS_DIR: 2049ef39-42a2-46d2-b513-ee6d2e3a7b15
RELEASES: |
windows:Barotrauma/bin/ReleaseWindows/net6.0/win-x64/publish
linux:Barotrauma/bin/ReleaseLinux/net6.0/linux-x64/publish
mac:Barotrauma/bin/ReleaseMac/net6.0/osx-x64/publish
ARCHIVE_BASE_NAME: luacsforbarotrauma ARCHIVE_BASE_NAME: luacsforbarotrauma
# XXX: these file names are subject to shell expansion. # XXX: these file names are subject to shell expansion.
# Be careful when using special characters. # Be careful when using special characters.
@@ -77,28 +81,25 @@ jobs:
shopt -s globstar nullglob shopt -s globstar nullglob
shopt -u dotglob shopt -u dotglob
IFS=$'\n' readarray -td $'\n' ARCHIVE_FILES_SHARED <<< "$ARCHIVE_FILES_SHARED" # This converts a newline-separated (LF) list into a Bash array
IFS=$'\n' readarray -td $'\n' ARCHIVE_FILES_CLIENT <<< "$ARCHIVE_FILES_CLIENT" # NOTE: this doesn't discard the trailing LF that GitHub actions
IFS=$'\n' readarray -td $'\n' ARCHIVE_FILES_SERVER <<< "$ARCHIVE_FILES_SERVER" # append (which results in an extra entry in the array).
lines_to_array() {
IFS=$'\n' readarray -td $'\n' "$1" <<< "${!1}"
}
platforms=( lines_to_array ARCHIVE_FILES_SHARED
"windows" lines_to_array ARCHIVE_FILES_CLIENT
"linux" lines_to_array ARCHIVE_FILES_SERVER
"mac" lines_to_array RELEASES
)
publish_dirs=(
"Barotrauma/bin/ReleaseWindows/net6.0/win-x64/publish"
"Barotrauma/bin/ReleaseLinux/net6.0/linux-x64/publish"
"Barotrauma/bin/ReleaseMac/net6.0/osx-x64/publish"
)
mkdir -p "$ARTIFACTS_DIR" mkdir -p "$ARTIFACTS_DIR"
artifacts_dir="$(realpath "$ARTIFACTS_DIR")" artifacts_dir="$(realpath "$ARTIFACTS_DIR")"
for i in "${!platforms[@]}"; do for i in "${!RELEASES[@]}"; do
[[ -z "${RELEASES[i]}" ]] && continue
( (
platform="${platforms[i]}" IFS=':' read platform publish_dir _rest <<< "${RELEASES[i]}"
publish_dir="${publish_dirs[i]}"
cd "$publish_dir" cd "$publish_dir"
echo "Creating build_${platform}.zip" echo "Creating build_${platform}.zip"
zip -qr "${artifacts_dir}/${ARCHIVE_BASE_NAME}_build_${platform}.zip" * zip -qr "${artifacts_dir}/${ARCHIVE_BASE_NAME}_build_${platform}.zip" *
@@ -113,10 +114,10 @@ jobs:
) )
done done
for i in "${!platforms[@]}"; do for i in "${!RELEASES[@]}"; do
[[ -z "${RELEASES[i]}" ]] && continue
( (
platform="${platforms[i]}" IFS=':' read platform publish_dir _rest <<< "${RELEASES[i]}"
publish_dir="${publish_dirs[i]}"
cd "$publish_dir" cd "$publish_dir"
echo "Creating build_${platform}.tar.gz" echo "Creating build_${platform}.tar.gz"
tar -czf "${artifacts_dir}/${ARCHIVE_BASE_NAME}_build_${platform}.tar.gz" \ tar -czf "${artifacts_dir}/${ARCHIVE_BASE_NAME}_build_${platform}.tar.gz" \