From 430dd9ae930c55dda957215724be505d5219a40a Mon Sep 17 00:00:00 2001 From: peelz Date: Thu, 11 Aug 2022 19:06:02 -0400 Subject: [PATCH] Change release workflow to create zip files for existing installs --- .github/workflows/publish-release.yml | 112 +++++++++++++++++++++----- 1 file changed, 91 insertions(+), 21 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index c70115a52..4c967c111 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -6,6 +6,33 @@ on: workflow_dispatch: workflow_call: +env: + ZIP_BASE_NAME: luacsforbarotrauma + ZIP_FILES_SERVER: | + DedicatedServer.deps.json + DedicatedServer.dll + DedicatedServer.pdb + ZIP_FILES_CLIENT: | + Barotrauma.deps.json + Barotrauma.dll + Barotrauma.pdb + ZIP_FILES_SHARED: | + 0Harmony.dll + MoonSharp.Interpreter.dll + MonoMod.Common.dll + Mono.Cecil.dll + Mono.Cecil.Mdb.dll + Mono.Cecil.Pdb.dll + Mono.Cecil.Rocks.dll + Microsoft.CodeAnalysis.CSharp.Scripting.dll + Microsoft.CodeAnalysis.CSharp.dll + Microsoft.CodeAnalysis.dll + Microsoft.CodeAnalysis.Scripting.dll + System.Collections.Immutable.dll + System.Reflection.Metadata.dll + System.Runtime.CompilerServices.Unsafe.dll + Lua + jobs: build: runs-on: ubuntu-latest @@ -38,26 +65,63 @@ 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 file: windows" - uses: thedoctor0/zip-release@main - with: - type: zip - filename: barotrauma_lua_windows.zip - directory: Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish + - name: Create zip files + 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" - - name: "Create zip file: linux" - uses: thedoctor0/zip-release@main - with: - type: zip - filename: barotrauma_lua_linux.zip - directory: Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish + for i in "${!ZIP_FILES_SHARED[@]}"; do + file="${ZIP_FILES_SHARED[i]}" + if [[ -z "$file" ]]; then + unset "ZIP_FILES_SHARED[$i]" + fi + done - - name: "Create zip file: mac" - uses: thedoctor0/zip-release@main - with: - type: zip - filename: barotrauma_lua_mac.zip - directory: Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish + 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=( + "windows" + "linux" + "mac" + ) + publish_dirs=( + "Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish" + "Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish" + "Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish" + ) + + for i in "${!platforms[@]}"; do + ( + platform="${platforms[i]}" + publish_dir="${publish_dirs[i]}" + cd "$publish_dir" + echo "Creating build_${platform}.zip" + zip -x *.zip -r "${ZIP_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[@]}" + 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[@]}" + ) + done - name: Publish release uses: marvinpinto/action-automatic-releases@v1.2.1 @@ -67,6 +131,12 @@ jobs: prerelease: false title: Automatic Build files: | - Barotrauma/bin/ReleaseWindows/netcoreapp3.1/win-x64/publish/barotrauma_lua_windows.zip - Barotrauma/bin/ReleaseLinux/netcoreapp3.1/linux-x64/publish/barotrauma_lua_linux.zip - Barotrauma/bin/ReleaseMac/netcoreapp3.1/osx-x64/publish/barotrauma_lua_mac.zip + 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