Skip to content

Merge pull request #736 from LavaGang/alpha-development #1903

Merge pull request #736 from LavaGang/alpha-development

Merge pull request #736 from LavaGang/alpha-development #1903

Workflow file for this run

name: Build MelonLoader
on:
push:
branches: [ master, alpha-development, v0.6.0-rewrite ]
pull_request:
branches: [ master, alpha-development, v0.6.0-rewrite ]
workflow_dispatch:
jobs:
build_core_debug:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: setup-msbuild
uses: microsoft/setup-msbuild@v2
- name: Build Melonloader Core
shell: cmd
run: msbuild /restore /p:Platform="Windows - x64" # Platform is actually irrelevant for core, it's compiled as AnyCPU either way
- name: Upload core artifact
uses: actions/upload-artifact@v4
with:
name: MLCoreDebug
path: Output/Debug/MelonLoader/
build_core_release:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: setup-msbuild
uses: microsoft/setup-msbuild@v2
- name: Build Melonloader Core
shell: cmd
run: msbuild /restore /p:Configuration=Release /p:Platform="Windows - x64"
- name: Upload core artifact
uses: actions/upload-artifact@v4
with:
name: MLCoreRelease
path: Output/Release/MelonLoader/
build_rust_windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: rust-toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
# Target triple to install for this toolchain
targets: i686-pc-windows-msvc, x86_64-pc-windows-msvc
# Build Rust Release
- name: Build Rust Release | Windows - x86
shell: cmd
run: cargo +nightly build --target i686-pc-windows-msvc --release
- name: Build Rust Release | Windows - x64
shell: cmd
run: cargo +nightly build --target x86_64-pc-windows-msvc --release
# Build Rust Debug
- name: Build Rust Debug | Windows - x86
shell: cmd
run: cargo +nightly build --target i686-pc-windows-msvc
- name: Build Rust Debug | Windows - x64
shell: cmd
run: cargo +nightly build --target x86_64-pc-windows-msvc
# Upload Proxy Release - x86
- name: Upload Proxy Release | Windows x86
uses: actions/upload-artifact@v4
with:
name: MLProxyX86-Windows-Release
path: target/i686-pc-windows-msvc/release/version.dll
# Upload Bootstrap Release - x86
- name: Upload Bootstrap Release | Windows x86
uses: actions/upload-artifact@v4
with:
name: MLBootstrapX86-Windows-Release
path: target/i686-pc-windows-msvc/release/Bootstrap.dll
# Upload Proxy Release - x64
- name: Upload Proxy Release | Windows x64
uses: actions/upload-artifact@v4
with:
name: MLProxyX64-Windows-Release
path: target/x86_64-pc-windows-msvc/release/version.dll
# Upload Bootstrap Release - x64
- name: Upload Bootstrap Release | Windows x64
uses: actions/upload-artifact@v4
with:
name: MLBootstrapX64-Windows-Release
path: target/x86_64-pc-windows-msvc/release/Bootstrap.dll
# Upload Proxy Debug - x86
- name: Upload Proxy Debug | Windows x86
uses: actions/upload-artifact@v4
with:
name: MLProxyX86-Windows-Debug
path: target/i686-pc-windows-msvc/debug/version.dll
# Upload Bootstrap Debug - x86
- name: Upload Bootstrap Debug | Windows x86
uses: actions/upload-artifact@v4
with:
name: MLBootstrapX86-Windows-Debug
path: target/i686-pc-windows-msvc/debug/Bootstrap.dll
# Upload Proxy Debug - x64
- name: Upload Proxy Debug | Windows x64
uses: actions/upload-artifact@v4
with:
name: MLProxyX64-Windows-Debug
path: target/x86_64-pc-windows-msvc/debug/version.dll
# Upload Bootstrap Debug - x64
- name: Upload Bootstrap Debug | Windows x64
uses: actions/upload-artifact@v4
with:
name: MLBootstrapX64-Windows-Debug
path: target/x86_64-pc-windows-msvc/debug/Bootstrap.dll
build_rust_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: rust-toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
# Target triple to install for this toolchain
targets: x86_64-unknown-linux-gnu
- name: update environment
shell: bash
run: sudo apt-get update
- name: install dev dependencies
shell: bash
run: sudo apt-get install libgtk-3-dev
- name: Build Rust Release | Linux - x64
shell: bash
run: cargo +nightly build --target x86_64-unknown-linux-gnu --release
- name: Build Rust Debug | Linux - x64
shell: bash
run: cargo +nightly build --target x86_64-unknown-linux-gnu
- name: Upload Proxy Release | Linux x64
uses: actions/upload-artifact@v4
with:
name: MLProxyX64-Linux-Release
path: target/x86_64-unknown-linux-gnu/release/libversion.so
- name: Upload Bootstrap Release | Linux x64
uses: actions/upload-artifact@v4
with:
name: MLBootstrapX64-Linux-Release
path: target/x86_64-unknown-linux-gnu/release/libBootstrap.so
- name: Upload Proxy Debug | Linux x64
uses: actions/upload-artifact@v4
with:
name: MLProxyX64-Linux-Debug
path: target/x86_64-unknown-linux-gnu/debug/libversion.so
- name: Upload Bootstrap Debug | Linux x64
uses: actions/upload-artifact@v4
with:
name: MLBootstrapX64-Linux-Debug
path: target/x86_64-unknown-linux-gnu/debug/libBootstrap.so
finalize_x64_debug_zip_windows:
runs-on: windows-latest
needs: [build_core_debug, build_rust_windows]
steps:
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v4
with:
name: MLCoreDebug
path: Output/Debug/x64/MelonLoader/
- name: Download proxy x64
uses: actions/download-artifact@v4
with:
name: MLProxyX64-Windows-Debug
path: Output/Debug/x64/
- name: Download bootstrap x64
uses: actions/download-artifact@v4
with:
name: MLBootstrapX64-Windows-Debug
path: Output/Debug/x64/MelonLoader/Dependencies/
- name: Package x64 zip
shell: cmd
run: |
echo Copying Managed Libs...
mkdir Output\Debug\x64\MelonLoader\Dependencies\Mono
xcopy BaseLibs\Mono Output\Debug\x64\MelonLoader\Dependencies\Mono\ /E /H /Y
xcopy BaseLibs\net35 Output\Debug\x64\MelonLoader\net35\ /E /H /Y
xcopy BaseLibs\net6 Output\Debug\x64\MelonLoader\net6\ /E /H /Y
echo.
echo Copying Dobby x64...
xcopy BaseLibs\dobby_x64.dll Output\Debug\x64\dobby.dll*
echo.
echo Copying documentation files...
copy NOTICE.txt Output\Debug\x64
mkdir Output\Debug\x64\MelonLoader\Documentation
copy CHANGELOG.md Output\Debug\x64\MelonLoader\Documentation\
copy LICENSE.md Output\Debug\x64\MelonLoader\Documentation\
copy NOTICE.txt Output\Debug\x64\MelonLoader\Documentation\
copy README.md Output\Debug\x64\MelonLoader\Documentation\
- uses: actions/upload-artifact@v4
name: Upload Zip | Windows - x64
with:
name: MelonLoader.Windows.x64.CI.Debug
path: ./Output/Debug/x64/*
finalize_x86_debug_zip_windows:
runs-on: windows-latest
needs: [build_core_debug, build_rust_windows]
steps:
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v4
with:
name: MLCoreDebug
path: Output/Debug/x86/MelonLoader/
- name: Download proxy x86
uses: actions/download-artifact@v4
with:
name: MLProxyX86-Windows-Debug
path: Output/Debug/x86/
- name: Download bootstrap x86
uses: actions/download-artifact@v4
with:
name: MLBootstrapX86-Windows-Debug
path: Output/Debug/x86/MelonLoader/Dependencies/
- name: Package x86 zip
shell: cmd
run: |
echo Copying Managed Libs...
mkdir Output\Debug\x86\MelonLoader\Dependencies\Mono
xcopy BaseLibs\Mono Output\Debug\x86\MelonLoader\Dependencies\Mono\ /E /H /Y
xcopy BaseLibs\net35 Output\Debug\x86\MelonLoader\net35\ /E /H /Y
xcopy BaseLibs\net6 Output\Debug\x86\MelonLoader\net6\ /E /H /Y
echo.
echo Copying Dobby x86...
xcopy BaseLibs\dobby_x86.dll Output\Debug\x86\dobby.dll*
echo.
echo Copying documentation files...
copy NOTICE.txt Output\Debug\x86
mkdir Output\Debug\x86\MelonLoader\Documentation
copy CHANGELOG.md Output\Debug\x86\MelonLoader\Documentation\
copy LICENSE.md Output\Debug\x86\MelonLoader\Documentation\
copy NOTICE.txt Output\Debug\x86\MelonLoader\Documentation\
copy README.md Output\Debug\x86\MelonLoader\Documentation\
- uses: actions/upload-artifact@v4
name: Upload Zip | Windows - x86
with:
name: MelonLoader.Windows.x86.CI.Debug
path: ./Output/Debug/x86/*
finalize_x64_release_zip_windows:
runs-on: windows-latest
needs: [build_core_release, build_rust_windows]
steps:
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v4
with:
name: MLCoreRelease
path: Output/Release/x64/MelonLoader/
- name: Download proxy x64
uses: actions/download-artifact@v4
with:
name: MLProxyX64-Windows-Release
path: Output/Release/x64/
- name: Download bootstrap x64
uses: actions/download-artifact@v4
with:
name: MLBootstrapX64-Windows-Release
path: Output/Release/x64/MelonLoader/Dependencies/
- name: Package x64 zip
shell: cmd
run: |
echo Copying Managed Libs...
mkdir Output\Release\x64\MelonLoader\Dependencies\Mono
xcopy BaseLibs\Mono Output\Release\x64\MelonLoader\Dependencies\Mono\ /E /H /Y
xcopy BaseLibs\net35 Output\Release\x64\MelonLoader\net35\ /E /H /Y
xcopy BaseLibs\net6 Output\Release\x64\MelonLoader\net6\ /E /H /Y
echo.
echo Copying Dobby x64...
xcopy BaseLibs\dobby_x64.dll Output\Release\x64\dobby.dll*
echo.
echo Copying documentation files...
copy NOTICE.txt Output\Release\x64
mkdir Output\Release\x64\MelonLoader\Documentation
copy CHANGELOG.md Output\Release\x64\MelonLoader\Documentation\
copy LICENSE.md Output\Release\x64\MelonLoader\Documentation\
copy NOTICE.txt Output\Release\x64\MelonLoader\Documentation\
copy README.md Output\Release\x64\MelonLoader\Documentation\
- uses: actions/upload-artifact@v4
name: Upload Zip | Windows - x64
with:
name: MelonLoader.Windows.x64.CI.Release
path: ./Output/Release/x64/*
finalize_x86_release_zip_windows:
runs-on: windows-latest
needs: [build_core_release, build_rust_windows]
steps:
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v4
with:
name: MLCoreRelease
path: Output/Release/x86/MelonLoader/
- name: Download proxy x86
uses: actions/download-artifact@v4
with:
name: MLProxyX86-Windows-Release
path: Output/Release/x86/
- name: Download bootstrap x86
uses: actions/download-artifact@v4
with:
name: MLBootstrapX86-Windows-Release
path: Output/Release/x86/MelonLoader/Dependencies/
- name: Package x86 zip
shell: cmd
run: |
echo Copying Managed Libs...
mkdir Output\Release\x86\MelonLoader\Dependencies\Mono
xcopy BaseLibs\Mono Output\Release\x86\MelonLoader\Dependencies\Mono\ /E /H /Y
xcopy BaseLibs\net35 Output\Release\x86\MelonLoader\net35\ /E /H /Y
xcopy BaseLibs\net6 Output\Release\x86\MelonLoader\net6\ /E /H /Y
echo.
echo Copying Dobby x86...
xcopy BaseLibs\dobby_x86.dll Output\Release\x86\dobby.dll*
echo.
echo Copying documentation files...
copy NOTICE.txt Output\Release\x86
mkdir Output\Release\x86\MelonLoader\Documentation
copy CHANGELOG.md Output\Release\x86\MelonLoader\Documentation\
copy LICENSE.md Output\Release\x86\MelonLoader\Documentation\
copy NOTICE.txt Output\Release\x86\MelonLoader\Documentation\
copy README.md Output\Release\x86\MelonLoader\Documentation\
- uses: actions/upload-artifact@v4
name: Upload Zip | Windows - x86
with:
name: MelonLoader.Windows.x86.CI.Release
path: ./Output/Release/x86/*
finalize_x64_debug_zip_linux:
runs-on: windows-latest
needs: [build_core_debug, build_rust_linux]
steps:
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v4
with:
name: MLCoreDebug
path: Output/Debug/x64/MelonLoader/
- name: Download proxy x64
uses: actions/download-artifact@v4
with:
name: MLProxyX64-Linux-Debug
path: Output/Debug/x64/
- name: Download bootstrap x64
uses: actions/download-artifact@v4
with:
name: MLBootstrapX64-Linux-Debug
path: Output/Debug/x64/MelonLoader/Dependencies/
- name: Package x64 zip
shell: cmd
run: |
echo Copying Managed Libs...
mkdir Output\Debug\x64\MelonLoader\Dependencies\Mono
xcopy BaseLibs\Mono Output\Debug\x64\MelonLoader\Dependencies\Mono\ /E /H /Y
xcopy BaseLibs\net35 Output\Debug\x64\MelonLoader\net35\ /E /H /Y
xcopy BaseLibs\net6 Output\Debug\x64\MelonLoader\net6\ /E /H /Y
echo.
echo Copying documentation files...
copy NOTICE.txt Output\Debug\x64
mkdir Output\Debug\x64\MelonLoader\Documentation
copy CHANGELOG.md Output\Debug\x64\MelonLoader\Documentation\
copy LICENSE.md Output\Debug\x64\MelonLoader\Documentation\
copy NOTICE.txt Output\Debug\x64\MelonLoader\Documentation\
copy README.md Output\Debug\x64\MelonLoader\Documentation\
- uses: actions/upload-artifact@v4
name: Upload Zip | Linux - x64
with:
name: MelonLoader.Linux.x64.CI.Debug
path: ./Output/Debug/x64/*
finalize_x64_release_zip_linux:
runs-on: windows-latest
needs: [build_core_release, build_rust_linux]
steps:
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v4
with:
name: MLCoreRelease
path: Output/Release/x64/MelonLoader/
- name: Download proxy x64
uses: actions/download-artifact@v4
with:
name: MLProxyX64-Linux-Release
path: Output/Release/x64/
- name: Download bootstrap x64
uses: actions/download-artifact@v4
with:
name: MLBootstrapX64-Linux-Release
path: Output/Release/x64/MelonLoader/Dependencies/
- name: Package x64 zip
shell: cmd
run: |
echo Copying Managed Libs...
mkdir Output\Release\x64\MelonLoader\Dependencies\Mono
xcopy BaseLibs\Mono Output\Release\x64\MelonLoader\Dependencies\Mono\ /E /H /Y
xcopy BaseLibs\net35 Output\Release\x64\MelonLoader\net35\ /E /H /Y
xcopy BaseLibs\net6 Output\Release\x64\MelonLoader\net6\ /E /H /Y
echo.
echo Copying documentation files...
copy NOTICE.txt Output\Release\x64
mkdir Output\Release\x64\MelonLoader\Documentation
copy CHANGELOG.md Output\Release\x64\MelonLoader\Documentation\
copy LICENSE.md Output\Release\x64\MelonLoader\Documentation\
copy NOTICE.txt Output\Release\x64\MelonLoader\Documentation\
copy README.md Output\Release\x64\MelonLoader\Documentation\
- uses: actions/upload-artifact@v4
name: Upload Zip | Linux - x64
with:
name: MelonLoader.Linux.x64.CI.Release
path: ./Output/Release/x64/*
cleanup_artifacts:
runs-on: windows-latest
needs: [finalize_x86_debug_zip_windows, finalize_x64_debug_zip_windows, finalize_x86_release_zip_windows, finalize_x64_release_zip_windows, finalize_x64_debug_zip_linux, finalize_x64_release_zip_linux]
steps:
- uses: GeekyEggo/[email protected]
with:
name: |
MLCoreDebug
MLCoreRelease
MLProxyX86-Windows-Debug
MLBootstrapX86-Windows-Debug
MLProxyX64-Windows-Debug
MLBootstrapX64-Windows-Debug
MLProxyX64-Linux-Debug
MLBootstrapX64-Linux-Debug
MLProxyX86-Windows-Release
MLBootstrapX86-Windows-Release
MLProxyX64-Windows-Release
MLBootstrapX64-Windows-Release
MLProxyX64-Linux-Release
MLBootstrapX64-Linux-Release