Add support for wildcard files in publish-release workflow

This commit is contained in:
peelz
2022-09-28 19:46:12 -04:00
parent 1a026c90a9
commit 5a59b8204a

View File

@@ -7,16 +7,18 @@ on:
workflow_call:
env:
ZIP_BASE_NAME: luacsforbarotrauma
ZIP_FILES_SERVER: |
ARCHIVE_BASE_NAME: luacsforbarotrauma
# XXX: these file names are subject to shell expansion.
# Be careful when using special characters.
ARCHIVE_FILES_SERVER: |
DedicatedServer.deps.json
DedicatedServer.dll
DedicatedServer.pdb
ZIP_FILES_CLIENT: |
ARCHIVE_FILES_CLIENT: |
Barotrauma.deps.json
Barotrauma.dll
Barotrauma.pdb
ZIP_FILES_SHARED: |
ARCHIVE_FILES_SHARED: |
0Harmony.dll
Sigil.dll
MoonSharp.Interpreter.dll
@@ -32,6 +34,7 @@ env:
System.Collections.Immutable.dll
System.Reflection.Metadata.dll
System.Runtime.CompilerServices.Unsafe.dll
mscordaccore_amd64_amd64_*
Lua
jobs:
@@ -66,32 +69,15 @@ jobs:
- name: "Build: MacClient"
run: dotnet publish Barotrauma/BarotraumaClient/MacClient.csproj -c Release -clp:"ErrorsOnly;Summary" --self-contained -r osx-x64 \/p:Platform="x64"
- name: Create zip files
- name: Create archives
run: |
IFS=$'\n' readarray -td $'\n' ZIP_FILES_SHARED <<< "$ZIP_FILES_SHARED"
IFS=$'\n' readarray -td $'\n' ZIP_FILES_CLIENT <<< "$ZIP_FILES_CLIENT"
IFS=$'\n' readarray -td $'\n' ZIP_FILES_SERVER <<< "$ZIP_FILES_SERVER"
set -e
shopt -s globstar nullglob
shopt -u dotglob
for i in "${!ZIP_FILES_SHARED[@]}"; do
file="${ZIP_FILES_SHARED[i]}"
if [[ -z "$file" ]]; then
unset "ZIP_FILES_SHARED[$i]"
fi
done
for i in "${!ZIP_FILES_CLIENT[@]}"; do
file="${ZIP_FILES_CLIENT[i]}"
if [[ -z "$file" ]]; then
unset "ZIP_FILES_CLIENT[$i]"
fi
done
for i in "${!ZIP_FILES_SERVER[@]}"; do
file="${ZIP_FILES_SERVER[i]}"
if [[ -z "$file" ]]; then
unset "ZIP_FILES_SERVER[$i]"
fi
done
IFS=$'\n' readarray -td $'\n' ARCHIVE_FILES_SHARED <<< "$ARCHIVE_FILES_SHARED"
IFS=$'\n' readarray -td $'\n' ARCHIVE_FILES_CLIENT <<< "$ARCHIVE_FILES_CLIENT"
IFS=$'\n' readarray -td $'\n' ARCHIVE_FILES_SERVER <<< "$ARCHIVE_FILES_SERVER"
platforms=(
"windows"
@@ -110,17 +96,15 @@ jobs:
publish_dir="${publish_dirs[i]}"
cd "$publish_dir"
echo "Creating build_${platform}.zip"
zip -x *.zip -r "${ZIP_BASE_NAME}_build_${platform}.zip" .
zip -x *.zip -r "${ARCHIVE_BASE_NAME}_build_${platform}.zip" .
echo "Creating patch_${platform}_client.zip"
zip -x *.zip -r "${ZIP_BASE_NAME}_patch_${platform}_client.zip" \
"${ZIP_FILES_SHARED[@]}" \
mscordaccore_amd64_amd64_* \
"${ZIP_FILES_CLIENT[@]}"
zip -x *.zip -r "${ARCHIVE_BASE_NAME}_patch_${platform}_client.zip" \
${ARCHIVE_FILES_SHARED[@]} \
${ARCHIVE_FILES_CLIENT[@]}
echo "Creating patch_${platform}_server.zip"
zip -x *.zip -r "${ZIP_BASE_NAME}_patch_${platform}_server.zip" \
"${ZIP_FILES_SHARED[@]}" \
mscordaccore_amd64_amd64_* \
"${ZIP_FILES_SERVER[@]}"
zip -x *.zip -r "${ARCHIVE_BASE_NAME}_patch_${platform}_server.zip" \
${ARCHIVE_FILES_SHARED[@]} \
${ARCHIVE_FILES_SERVER[@]}
)
done
@@ -132,12 +116,12 @@ jobs:
prerelease: false
title: Automatic Build
files: |
Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/${{ env.ZIP_BASE_NAME }}_build_windows.zip
Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/${{ env.ZIP_BASE_NAME }}_patch_windows_client.zip
Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/${{ env.ZIP_BASE_NAME }}_patch_windows_server.zip
Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/${{ env.ZIP_BASE_NAME }}_build_linux.zip
Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/${{ env.ZIP_BASE_NAME }}_patch_linux_client.zip
Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/${{ env.ZIP_BASE_NAME }}_patch_linux_server.zip
Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/${{ env.ZIP_BASE_NAME }}_build_mac.zip
Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/${{ env.ZIP_BASE_NAME }}_patch_mac_client.zip
Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/${{ env.ZIP_BASE_NAME }}_patch_mac_server.zip
Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_build_windows.zip
Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_patch_windows_client.zip
Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_patch_windows_server.zip
Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_build_linux.zip
Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_patch_linux_client.zip
Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_patch_linux_server.zip
Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_build_mac.zip
Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_patch_mac_client.zip
Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/${{ env.ARCHIVE_BASE_NAME }}_patch_mac_server.zip