144 lines
5.6 KiB
YAML
144 lines
5.6 KiB
YAML
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
|
|
|
name: Publish release
|
|
|
|
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
|
|
Sigil.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
|
|
|
|
steps:
|
|
- name: Checkout branch
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v2
|
|
with:
|
|
dotnet-version: |
|
|
3.1.x
|
|
6.0.x
|
|
|
|
- name: "Build: WindowsServer"
|
|
run: dotnet publish Barotrauma/BarotraumaServer/WindowsServer.csproj -c Release -clp:"ErrorsOnly;Summary" --self-contained -r win-x64 \/p:Platform="x64"
|
|
- name: "Build: WindowsClient"
|
|
run: dotnet publish Barotrauma/BarotraumaClient/WindowsClient.csproj -c Release -clp:"ErrorsOnly;Summary" --self-contained -r win-x64 \/p:Platform="x64"
|
|
|
|
- name: "Build: LinuxServer"
|
|
run: dotnet publish Barotrauma/BarotraumaServer/LinuxServer.csproj -c Release -clp:"ErrorsOnly;Summary" --self-contained -r linux-x64 \/p:Platform="x64"
|
|
- name: "Build: LinuxClient"
|
|
run: dotnet publish Barotrauma/BarotraumaClient/LinuxClient.csproj -c Release -clp:"ErrorsOnly;Summary" --self-contained -r linux-x64 \/p:Platform="x64"
|
|
|
|
- name: "Build: MacServer"
|
|
run: dotnet publish Barotrauma/BarotraumaServer/MacServer.csproj -c Release -clp:"ErrorsOnly;Summary" --self-contained -r osx-x64 \/p:Platform="x64"
|
|
- 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
|
|
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"
|
|
|
|
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
|
|
|
|
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
|
|
with:
|
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
automatic_release_tag: latest
|
|
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
|