0.6.6-ci.2027 | Reworked Melon Folder Scanning to be manifest json aware #2027
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build MelonLoader | |
run-name: ${{ vars.DEVVERSION }}${{ github.event_name != 'workflow_dispatch' && format('-ci.{0}', github.run_number) || '' }} | ${{ github.event_name != 'workflow_dispatch' && (github.event.head_commit.message || format('`[PR]` {0}', github.event.pull_request.title)) || 'Manual Build' }} | |
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: | |
name: Build Managed Binaries | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
- name: Restore Dependencies | |
run: dotnet restore | |
- name: Build Melonloader Core Debug | |
run: dotnet build --no-restore -c Debug -p:Platform="Windows - x64" -p:Version="${{ vars.DEVVERSION }}${{ github.event_name != 'workflow_dispatch' && format('.{0}', github.run_number) || '' }}" # Platform is actually irrelevant for core, it's compiled as AnyCPU either way | |
- name: Upload Debug Core Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MLCoreDebug | |
path: Output/Debug/MelonLoader/ | |
- name: Build MelonLoader Core Release | |
run: dotnet build --no-restore -c Release -p:Platform="Windows - x64" -p:Version="${{ vars.DEVVERSION }}${{ github.event_name != 'workflow_dispatch' && format('.{0}', github.run_number) || '' }}" | |
- name: Upload Release Core Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MLCoreRelease | |
path: Output/Release/MelonLoader/ | |
- name: Pack NuGet Package | |
run: dotnet pack --no-build -c Release -p:Version="${{ vars.DEVVERSION }}${{ github.event_name != 'workflow_dispatch' && format('-ci.{0}', github.run_number) || '' }}" | |
- name: Upload NuGet Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MelonLoader.NuGet | |
path: Output/Release/MelonLoader/LavaGang.MelonLoader.${{ vars.DEVVERSION }}${{ github.event_name != 'workflow_dispatch' && format('-ci.{0}', github.run_number) || '' }}.nupkg | |
build_rust_windows: | |
name: Build Native Binaries (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: | |
name: Build Native Binaries (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_windows: | |
name: Finalize Windows Artifacts | |
runs-on: ubuntu-22.04 | |
needs: [build_core, build_rust_windows] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Debug Managed Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLCoreDebug | |
path: Output/Debug/Managed/ | |
- name: Download Debug Proxy x64 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLProxyX64-Windows-Debug | |
path: Output/Debug/x64/ | |
- name: Download Debug Bootstrap x64 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLBootstrapX64-Windows-Debug | |
path: Output/Debug/x64/MelonLoader/Dependencies/ | |
- name: Package Debug x64 Artifact | |
run: | | |
echo Copying Managed Libs... | |
mkdir -p Output/Debug/x64/MelonLoader/Dependencies/Mono | |
cp -r Output/Debug/Managed/* Output/Debug/x64/MelonLoader/ | |
cp -r BaseLibs/Mono Output/Debug/x64/MelonLoader/Dependencies/ | |
cp -r BaseLibs/net35 Output/Debug/x64/MelonLoader/ | |
cp -r BaseLibs/net6 Output/Debug/x64/MelonLoader/ | |
echo | |
echo Copying Dobby x64... | |
cp BaseLibs/dobby_x64.dll Output/Debug/x64/MelonLoader/Dependencies/dobby.dll | |
echo | |
echo Copying documentation files... | |
cp NOTICE.txt Output/Debug/x64/ | |
mkdir -p Output/Debug/x64/MelonLoader/Documentation | |
cp CHANGELOG.md Output/Debug/x64/MelonLoader/Documentation/ | |
cp LICENSE.md Output/Debug/x64/MelonLoader/Documentation/ | |
cp NOTICE.txt Output/Debug/x64/MelonLoader/Documentation/ | |
cp README.md Output/Debug/x64/MelonLoader/Documentation/ | |
- uses: actions/upload-artifact@v4 | |
name: Upload Zip | Windows - Debug - x64 | |
with: | |
name: MelonLoader.Windows.x64.CI.Debug | |
path: ./Output/Debug/x64/* | |
- name: Download Release Managed Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLCoreRelease | |
path: Output/Release/Managed/ | |
- name: Download Release Proxy x64 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLProxyX64-Windows-Release | |
path: Output/Release/x64/ | |
- name: Download Debug Bootstrap x64 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLBootstrapX64-Windows-Release | |
path: Output/Release/x64/MelonLoader/Dependencies/ | |
- name: Package Release x64 Artifact | |
run: | | |
echo Copying Managed Libs... | |
mkdir -p Output/Release/x64/MelonLoader/Dependencies/Mono | |
cp -r Output/Release/Managed/* Output/Release/x64/MelonLoader/ | |
cp -r BaseLibs/Mono Output/Release/x64/MelonLoader/Dependencies/ | |
cp -r BaseLibs/net35 Output/Release/x64/MelonLoader/ | |
cp -r BaseLibs/net6 Output/Release/x64/MelonLoader/ | |
echo | |
echo Copying Dobby x64... | |
cp BaseLibs/dobby_x64.dll Output/Release/x64/MelonLoader/Dependencies/dobby.dll | |
echo | |
echo Copying documentation files... | |
cp NOTICE.txt Output/Release/x64/ | |
mkdir -p Output/Release/x64/MelonLoader/Documentation | |
cp CHANGELOG.md Output/Release/x64/MelonLoader/Documentation/ | |
cp LICENSE.md Output/Release/x64/MelonLoader/Documentation/ | |
cp NOTICE.txt Output/Release/x64/MelonLoader/Documentation/ | |
cp README.md Output/Release/x64/MelonLoader/Documentation/ | |
- uses: actions/upload-artifact@v4 | |
name: Upload Zip | Windows - Release - x64 | |
with: | |
name: MelonLoader.Windows.x64.CI.Release | |
path: ./Output/Release/x64/* | |
- name: Download Debug Proxy x86 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLProxyX86-Windows-Debug | |
path: Output/Debug/x86/ | |
- name: Download Debug Bootstrap x86 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLBootstrapX86-Windows-Debug | |
path: Output/Debug/x86/MelonLoader/Dependencies/ | |
- name: Package Debug x86 Artifact | |
run: | | |
echo Copying Managed Libs... | |
mkdir -p Output/Debug/x86/MelonLoader/Dependencies/Mono | |
cp -r Output/Debug/Managed/* Output/Debug/x86/MelonLoader/ | |
cp -r BaseLibs/Mono Output/Debug/x86/MelonLoader/Dependencies/ | |
cp -r BaseLibs/net35 Output/Debug/x86/MelonLoader/ | |
cp -r BaseLibs/net6 Output/Debug/x86/MelonLoader/ | |
echo | |
echo Copying Dobby x86... | |
cp BaseLibs/dobby_x86.dll Output/Debug/x86/MelonLoader/Dependencies/dobby.dll | |
echo | |
echo Copying documentation files... | |
cp NOTICE.txt Output/Debug/x86/ | |
mkdir -p Output/Debug/x86/MelonLoader/Documentation | |
cp CHANGELOG.md Output/Debug/x86/MelonLoader/Documentation/ | |
cp LICENSE.md Output/Debug/x86/MelonLoader/Documentation/ | |
cp NOTICE.txt Output/Debug/x86/MelonLoader/Documentation/ | |
cp README.md Output/Debug/x86/MelonLoader/Documentation/ | |
- uses: actions/upload-artifact@v4 | |
name: Upload Zip | Windows - Debug - x86 | |
with: | |
name: MelonLoader.Windows.x86.CI.Debug | |
path: ./Output/Debug/x86/* | |
- name: Download Release Proxy x86 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLProxyX86-Windows-Release | |
path: Output/Release/x86/ | |
- name: Download Release Bootstrap x86 Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLBootstrapX86-Windows-Release | |
path: Output/Release/x86/MelonLoader/Dependencies/ | |
- name: Package Release x86 Artifact | |
run: | | |
echo Copying Managed Libs... | |
mkdir -p Output/Release/x86/MelonLoader/Dependencies/Mono | |
cp -r Output/Release/Managed/* Output/Release/x86/MelonLoader/ | |
cp -r BaseLibs/Mono Output/Release/x86/MelonLoader/Dependencies/ | |
cp -r BaseLibs/net35 Output/Release/x86/MelonLoader/ | |
cp -r BaseLibs/net6 Output/Release/x86/MelonLoader/ | |
echo | |
echo Copying Dobby x86... | |
cp BaseLibs/dobby_x86.dll Output/Release/x86/MelonLoader/Dependencies/dobby.dll | |
echo | |
echo Copying documentation files... | |
cp NOTICE.txt Output/Release/x86/ | |
mkdir -p Output/Release/x86/MelonLoader/Documentation | |
cp CHANGELOG.md Output/Release/x86/MelonLoader/Documentation/ | |
cp LICENSE.md Output/Release/x86/MelonLoader/Documentation/ | |
cp NOTICE.txt Output/Release/x86/MelonLoader/Documentation/ | |
cp README.md Output/Release/x86/MelonLoader/Documentation/ | |
- uses: actions/upload-artifact@v4 | |
name: Upload Zip | Windows - Release - x86 | |
with: | |
name: MelonLoader.Windows.x86.CI.Release | |
path: ./Output/Release/x86/* | |
finalize_linux: | |
name: Finalize Linux Artifacts | |
runs-on: ubuntu-22.04 | |
needs: [build_core, build_rust_linux] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Debug Managed Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLCoreDebug | |
path: Output/Debug/x64/MelonLoader/ | |
- name: Download Debug Proxy Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLProxyX64-Linux-Debug | |
path: Output/Debug/x64/ | |
- name: Download Debug Bootstrap Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLBootstrapX64-Linux-Debug | |
path: Output/Debug/x64/MelonLoader/Dependencies/ | |
- name: Package Debug Zip | |
run: | | |
echo Copying Managed Libs... | |
mkdir -p Output/Debug/x64/MelonLoader/Dependencies/Mono | |
cp -r BaseLibs/Mono Output/Debug/x64/MelonLoader/Dependencies/ | |
cp -r BaseLibs/net35 Output/Debug/x64/MelonLoader/ | |
cp -r BaseLibs/net6 Output/Debug/x64/MelonLoader/ | |
echo | |
echo Copying documentation files... | |
cp NOTICE.txt Output/Debug/x64 | |
mkdir -p Output/Debug/x64/MelonLoader/Documentation | |
cp CHANGELOG.md Output/Debug/x64/MelonLoader/Documentation/ | |
cp LICENSE.md Output/Debug/x64/MelonLoader/Documentation/ | |
cp NOTICE.txt Output/Debug/x64/MelonLoader/Documentation/ | |
cp README.md Output/Debug/x64/MelonLoader/Documentation/ | |
- uses: actions/upload-artifact@v4 | |
name: Upload Zip | Linux - Debug - x64 | |
with: | |
name: MelonLoader.Linux.x64.CI.Debug | |
path: ./Output/Debug/x64/* | |
- name: Download Release Managed Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLCoreRelease | |
path: Output/Release/x64/MelonLoader/ | |
- name: Download Release Proxy Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLProxyX64-Linux-Release | |
path: Output/Release/x64/ | |
- name: Download Release Bootstrap Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MLBootstrapX64-Linux-Release | |
path: Output/Release/x64/MelonLoader/Dependencies/ | |
- name: Package Release Zip | |
run: | | |
echo Copying Managed Libs... | |
mkdir -p Output/Release/x64/MelonLoader/Dependencies/Mono | |
cp -r BaseLibs/Mono Output/Release/x64/MelonLoader/Dependencies/ | |
cp -r BaseLibs/net35 Output/Release/x64/MelonLoader/ | |
cp -r BaseLibs/net6 Output/Release/x64/MelonLoader/ | |
echo | |
echo Copying documentation files... | |
cp NOTICE.txt Output/Release/x64/ | |
mkdir -p Output/Release/x64/MelonLoader/Documentation | |
cp CHANGELOG.md Output/Release/x64/MelonLoader/Documentation/ | |
cp LICENSE.md Output/Release/x64/MelonLoader/Documentation/ | |
cp NOTICE.txt Output/Release/x64/MelonLoader/Documentation/ | |
cp README.md Output/Release/x64/MelonLoader/Documentation/ | |
- uses: actions/upload-artifact@v4 | |
name: Upload Zip | Linux - Release - x64 | |
with: | |
name: MelonLoader.Linux.x64.CI.Release | |
path: ./Output/Release/x64/* | |
cleanup_artifacts: | |
name: Cleanup Artifacts | |
runs-on: ubuntu-22.04 | |
needs: [finalize_windows, finalize_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 | |