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