From 5a59b8204aeed79f7d728d085cfedacf8ff06e38 Mon Sep 17 00:00:00 2001 From: peelz Date: Wed, 28 Sep 2022 19:46:12 -0400 Subject: [PATCH] Add support for wildcard files in publish-release workflow --- .github/workflows/publish-release.yml | 76 +++++++++++---------------- 1 file changed, 30 insertions(+), 46 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 276617a0d..f8a8a0f43 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -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