From c884a6197d55a978c18bb307a7329d043691db67 Mon Sep 17 00:00:00 2001 From: Eoin Motherway <25342760+YuKitsune@users.noreply.github.com> Date: Tue, 25 Aug 2026 14:12:23 +1000 Subject: [PATCH 1/4] ci: Migrate to Fallout --- {.nuke => .fallout}/build.schema.json | 17 ++++++++++++----- {.nuke => .fallout}/parameters.json | 0 .github/workflows/build.yml | 18 ++++++++++++------ .github/workflows/release.yml | 18 ++++++++++++------ .gitignore | 4 ++-- build.ps1 | 2 +- build.sh | 2 +- build/Build.cs | 18 +++++++++--------- build/Configuration.cs | 2 +- build/_build.csproj | 9 ++++----- 10 files changed, 54 insertions(+), 36 deletions(-) rename {.nuke => .fallout}/build.schema.json (86%) rename {.nuke => .fallout}/parameters.json (100%) diff --git a/.nuke/build.schema.json b/.fallout/build.schema.json similarity index 86% rename from .nuke/build.schema.json rename to .fallout/build.schema.json index e52e669..f655214 100644 --- a/.nuke/build.schema.json +++ b/.fallout/build.schema.json @@ -43,7 +43,7 @@ "Quiet" ] }, - "NukeBuild": { + "FalloutBuild": { "properties": { "Continue": { "type": "boolean", @@ -97,6 +97,13 @@ "Verbosity": { "description": "Logging verbosity during build execution. Default is 'Normal'", "$ref": "#/definitions/Verbosity" + }, + "BuildProjectFile": { + "type": [ + "null", + "string" + ], + "description": "Path to the build project (.csproj) relative to the repository root. Defaults to 'build/_build.csproj' when unset. Read by the Fallout global tool's in-tool runner." } } } @@ -106,16 +113,16 @@ "properties": { "Configuration": { "type": "string", - "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", "enum": [ "Debug", "Release" - ] + ], + "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)" }, "GitHubToken": { "type": "string", "description": "GitHub token for creating releases", - "default": "Secrets must be entered via 'nuke :secrets [profile]'" + "default": "Secrets must be entered via 'fallout :secrets [profile]'" }, "ProfileName": { "type": "string" @@ -127,7 +134,7 @@ } }, { - "$ref": "#/definitions/NukeBuild" + "$ref": "#/definitions/FalloutBuild" } ] } diff --git a/.nuke/parameters.json b/.fallout/parameters.json similarity index 100% rename from .nuke/parameters.json rename to .fallout/parameters.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 69c2eca..400a818 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ # # - To trigger manual generation invoke: # -# nuke --generate-configuration GitHubActions_build --host GitHubActions +# fallout --generate-configuration GitHubActions_build --host GitHubActions # # # ------------------------------------------------------------------------------ @@ -29,15 +29,21 @@ jobs: name: windows-latest runs-on: windows-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - name: 'Cache: .nuke/temp, ~/.nuget/packages' - uses: actions/cache@v4 + - name: 'Cache: .fallout/temp, ~/.nuget/packages' + uses: actions/cache@v6 with: path: | - .nuke/temp + .fallout/temp ~/.nuget/packages key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} + - name: 'Setup: .NET SDK' + uses: actions/setup-dotnet@v6 + with: + global-json-file: global.json + - name: 'Restore: dotnet tools' + run: dotnet tool restore - name: 'Run: Compile' - run: ./build.cmd Compile + run: dotnet fallout Compile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 537b155..2d91fdf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ # # - To trigger manual generation invoke: # -# nuke --generate-configuration GitHubActions_release --host GitHubActions +# fallout --generate-configuration GitHubActions_release --host GitHubActions # # # ------------------------------------------------------------------------------ @@ -29,18 +29,24 @@ jobs: name: windows-latest runs-on: windows-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - name: 'Cache: .nuke/temp, ~/.nuget/packages' - uses: actions/cache@v4 + - name: 'Cache: .fallout/temp, ~/.nuget/packages' + uses: actions/cache@v6 with: path: | - .nuke/temp + .fallout/temp ~/.nuget/packages key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} + - name: 'Setup: .NET SDK' + uses: actions/setup-dotnet@v6 + with: + global-json-file: global.json + - name: 'Restore: dotnet tools' + run: dotnet tool restore - name: 'Run: Release' - run: ./build.cmd Release + run: dotnet fallout Release env: GitHubToken: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 24f4b92..a9dcd09 100644 --- a/.gitignore +++ b/.gitignore @@ -133,8 +133,8 @@ $RECYCLE.BIN/ _NCrunch* -# Nuke -.nuke/temp +# Fallout +.fallout/temp # Build output .dist diff --git a/build.ps1 b/build.ps1 index 4634dc0..27eeef1 100644 --- a/build.ps1 +++ b/build.ps1 @@ -14,7 +14,7 @@ $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent ########################################################################### $BuildProjectFile = "$PSScriptRoot\build\_build.csproj" -$TempDirectory = "$PSScriptRoot\\.nuke\temp" +$TempDirectory = "$PSScriptRoot\\.fallout\temp" $DotNetGlobalFile = "$PSScriptRoot\\global.json" $DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" diff --git a/build.sh b/build.sh index fdff0c6..a3dad0d 100644 --- a/build.sh +++ b/build.sh @@ -10,7 +10,7 @@ SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) ########################################################################### BUILD_PROJECT_FILE="$SCRIPT_DIR/build/_build.csproj" -TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" +TEMP_DIRECTORY="$SCRIPT_DIR//.fallout/temp" DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json" DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh" diff --git a/build/Build.cs b/build/Build.cs index 2dba97f..a5f6a84 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -4,14 +4,14 @@ using System.Linq; using System.Net.Http; using System.Runtime.Versioning; -using Nuke.Common; -using Nuke.Common.CI.GitHubActions; -using Nuke.Common.Git; -using Nuke.Common.IO; -using Nuke.Common.Tools.DotNet; -using Nuke.Common.Tools.GitHub; -using Nuke.Common.Tools.GitVersion; -using Nuke.Common.Tools.ILRepack; +using Fallout.Common; +using Fallout.Common.CI.GitHubActions; +using Fallout.Common.Git; +using Fallout.Common.IO; +using Fallout.Common.Tools.DotNet; +using Fallout.Common.Tools.GitHub; +using Fallout.Common.Tools.GitVersion; +using Fallout.Common.Tools.ILRepack; using Octokit; using Serilog; @@ -32,7 +32,7 @@ EnableGitHubToken = true, FetchDepth = 0, WritePermissions = [GitHubActionsPermissions.Contents])] -class Build : NukeBuild +class Build : FalloutBuild { /// Support plugins are available for: /// - JetBrains ReSharper https://nuke.build/resharper diff --git a/build/Configuration.cs b/build/Configuration.cs index 9c08b1a..75c63ea 100644 --- a/build/Configuration.cs +++ b/build/Configuration.cs @@ -1,7 +1,7 @@ using System; using System.ComponentModel; using System.Linq; -using Nuke.Common.Tooling; +using Fallout.Common.Tooling; [TypeConverter(typeof(TypeConverter))] public class Configuration : Enumeration diff --git a/build/_build.csproj b/build/_build.csproj index e471506..d02c736 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -5,14 +5,13 @@ net10.0 CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006 - .. - .. - 1 - false + .. + .. +false - + From df3df40ed0b5dbe7d8cfd239e711b697ecb8eda6 Mon Sep 17 00:00:00 2001 From: Eoin Motherway <25342760+YuKitsune@users.noreply.github.com> Date: Tue, 25 Aug 2026 14:15:04 +1000 Subject: [PATCH 2/4] add global.json --- global.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 global.json diff --git a/global.json b/global.json new file mode 100644 index 0000000..9769786 --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.300" + } +} From ef9e82ee170a0498f5beb02015f11050dc5732a2 Mon Sep 17 00:00:00 2001 From: Eoin Motherway <25342760+YuKitsune@users.noreply.github.com> Date: Tue, 25 Aug 2026 14:17:55 +1000 Subject: [PATCH 3/4] Clean up --- .github/workflows/build.yml | 8 +------- .github/workflows/release.yml | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 400a818..56e690b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,11 +39,5 @@ jobs: .fallout/temp ~/.nuget/packages key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} - - name: 'Setup: .NET SDK' - uses: actions/setup-dotnet@v6 - with: - global-json-file: global.json - - name: 'Restore: dotnet tools' - run: dotnet tool restore - name: 'Run: Compile' - run: dotnet fallout Compile + run: ./build.cmd Compile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2d91fdf..e866228 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,14 +39,8 @@ jobs: .fallout/temp ~/.nuget/packages key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} - - name: 'Setup: .NET SDK' - uses: actions/setup-dotnet@v6 - with: - global-json-file: global.json - - name: 'Restore: dotnet tools' - run: dotnet tool restore - name: 'Run: Release' - run: dotnet fallout Release + run: ./build.cmd Release env: GitHubToken: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 398796202c46760ccfe1cd666691d751fd9863df Mon Sep 17 00:00:00 2001 From: Eoin Motherway <25342760+YuKitsune@users.noreply.github.com> Date: Tue, 25 Aug 2026 14:26:03 +1000 Subject: [PATCH 4/4] Add shield --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4a362d0..ef36d0f 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/yukitsune/HoldPlugin/build.yml?branch=main)](https://github.com/YuKitsune/HoldPlugin/actions/workflows/build.yml) [![License](https://img.shields.io/github/license/YuKitsune/HoldPlugin)](https://github.com/YuKitsune/HoldPlugin/blob/main/LICENSE) [![Latest Release](https://img.shields.io/github/v/release/YuKitsune/HoldPlugin?include_prereleases)](https://github.com/YuKitsune/HoldPlugin/releases) + [![built with Fallout](https://img.shields.io/badge/built%20with-Fallout-F5C800?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI%2BPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTIiIGZpbGw9IiNGNUM4MDAiLz48ZyBmaWxsPSIjMTExIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzLjEiLz48cGF0aCBkPSJNOS45OSA5LjAyQTMuNiAzLjYgMCAwIDEgMTQuMDEgOS4wMkwxOC40OSAyLjM4QTExLjYgMTEuNiAwIDAgMCA1LjUxIDIuMzhaTTE1LjU5IDExLjc1QTMuNiAzLjYgMCAwIDEgMTMuNTggMTUuMjRMMTcuMDkgMjIuNDNBMTEuNiAxMS42IDAgMCAwIDIzLjU3IDExLjE5Wk0xMC40MiAxNS4yNEEzLjYgMy42IDAgMCAxIDguNDEgMTEuNzVMMC40MyAxMS4xOUExMS42IDExLjYgMCAwIDAgNi45MSAyMi40M1oiLz48L2c%2BPC9zdmc%2B)](https://github.com/Fallout-build/Fallout) +