Skip to content

When saving bots, write to temp file first instead of writing directl… #148

When saving bots, write to temp file first instead of writing directl…

When saving bots, write to temp file first instead of writing directl… #148

Workflow file for this run

name: Build latest
# trigger via either push to selected branches or on manual run
on:
push:
branches:
- master
- ConsoleDriver
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-latest
cancel-in-progress: true
jobs:
#============================================
# ============== .NET 2.0 BUILD =============
# ===========================================
build-mono2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Compile MCGalaxy using mono
shell: bash
id: compile
run: |
msbuild MCGalaxy.sln /p:Configuration=Release /p:TargetFrameworkVersion=v2.0 /p:DefineConstants="NET_20"
- uses: ./.github/actions/notify_failure
if: ${{ always() && steps.compile.outcome == 'failure' }}
with:
NOTIFY_MESSAGE: 'Failed to compile MCGalaxy .NET 2.0 build'
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'bin/Release'
DEST_NAME: 'MCGalaxy-net2.0'
- uses: ./.github/actions/notify_success
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
WORKFLOW_NAME: 'net20'
#============================================
# ============== .NET 4.0 BUILD =============
# ===========================================
build-mono4:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Compile MCGalaxy using mono
shell: bash
id: compile
run: |
msbuild MCGalaxy.sln /p:Configuration=Release
cp -R bin/Release bin/Release_normal
rm bin/Release/MCGalaxy_.dll bin/Release/MCGalaxy_.pdb
msbuild MCGalaxy/MCGalaxy_.csproj /p:Configuration=Release /t:Rebuild /p:DefineConstants="TEN_BIT_BLOCKS"
- uses: ./.github/actions/notify_failure
if: ${{ always() && steps.compile.outcome == 'failure' }}
with:
NOTIFY_MESSAGE: 'Failed to compile MCGalaxy .NET build'
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'bin/Release_normal'
DEST_NAME: 'MCGalaxy-net40'
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'bin/Release'
DEST_NAME: 'MCGalaxy-net40-infid'
- uses: ./.github/actions/notify_success
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
WORKFLOW_NAME: 'net40'
#============================================
# ============== .NET 6.0 BUILD =============
# ===========================================
build-dotnet6:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
- name: Restore dependencies
run: dotnet restore CLI/MCGalaxyCLI_dotnet6.csproj
- name: Build
id: compile
run: |
dotnet build CLI/MCGalaxyCLI_dotnet6.csproj --no-restore
- uses: ./.github/actions/notify_failure
if: ${{ always() && steps.compile.outcome == 'failure' }}
with:
NOTIFY_MESSAGE: 'Failed to compile MCGalaxy dotnet build'
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'CLI/bin/Debug/net6.0'
DEST_NAME: 'MCGalaxy-net6.0'
# publish standalone windows binaries
- name: Publish-win64
run: dotnet publish CLI/MCGalaxyCLI_standalone6.csproj -r win-x64 --self-contained
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'CLI/bin/Debug/net6.0/win-x64/publish'
DEST_NAME: 'MCGalaxy-win64-standalone'
# publish standalone linux binaries
- name: Publish-linux64
run: dotnet publish CLI/MCGalaxyCLI_standalone6.csproj -r linux-x64 --self-contained
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'CLI/bin/Debug/net6.0/linux-x64/publish'
DEST_NAME: 'MCGalaxy-linux64-standalone'
# publish standalone macOS binaries
- name: Publish-mac64
run: dotnet publish CLI/MCGalaxyCLI_standalone6.csproj -r osx-x64 --self-contained
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'CLI/bin/Debug/net6.0/osx-x64/publish'
DEST_NAME: 'MCGalaxy-mac64-standalone'
- uses: ./.github/actions/notify_success
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
WORKFLOW_NAME: 'net60'
#============================================
# ============== .NET 8.0 BUILD =============
# ===========================================
build-dotnet8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Restore dependencies
run: dotnet restore CLI/MCGalaxyCLI_dotnet8.csproj
- name: Build
id: compile
run: |
dotnet build CLI/MCGalaxyCLI_dotnet8.csproj --no-restore
- uses: ./.github/actions/notify_failure
if: ${{ always() && steps.compile.outcome == 'failure' }}
with:
NOTIFY_MESSAGE: 'Failed to compile MCGalaxy dotnet build'
WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}'
- uses: ./.github/actions/upload_build
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
SOURCE_FILE: 'CLI/bin/Debug/net8.0'
DEST_NAME: 'MCGalaxy-net8.0'
- uses: ./.github/actions/notify_success
if: ${{ always() && steps.compile.outcome == 'success' }}
with:
DESTINATION_URL: '${{ secrets.NOTIFY_URL }}'
WORKFLOW_NAME: 'net80'