Skip to content

Commit 80543fd

Browse files
committed
chore: migrate the build pipeline from NUKE to Fallout
NUKE no longer supports the .NET SDK the build agents install, so CI fails before it reaches any target. This ports the migration the core repository made in Testably/aweXpect#1017. - Rename `.nuke` to `.fallout` and point the Fallout global tool at `Pipeline/Build.csproj` through `BuildProjectFile` in `parameters.json`. - Replace Nuke.Common/Nuke.Components 10.1.0 with Fallout.Common/ Fallout.Components 10.4.0 and rewrite the pipeline namespaces: `Nuke.Common.ProjectModel` becomes `Fallout.Solutions`, everything else `Fallout.Common.*`. - Pin NuGet.Frameworks to 7.9.0: the SDK's MSBuild expects `NuGet.Frameworks 7.9.0.0` while the build host otherwise resolves 6.x transitively, which breaks in-process project evaluation. - Pin the SDK to the 10.0.3xx band in `global.json` and the workflows. `global.json`, the workflow `dotnet-version` lists and the NuGet.Frameworks pin have to be bumped together from now on. - Drop the NUKE enterprise feed handling from the bootstrap scripts and ignore `.fallout/temp/`. Fallout 10.4.0 is the latest listed release; the entire 11.0.x band is unlisted on nuget.org. Verified locally: the pipeline project compiles, `--help` lists every target, and `UnitTests` and `Pack` succeed in Release.
1 parent 79dcf38 commit 80543fd

23 files changed

Lines changed: 92 additions & 90 deletions
Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
"Quiet"
5858
]
5959
},
60-
"NukeBuild": {
60+
"FalloutBuild": {
6161
"properties": {
6262
"Continue": {
6363
"type": "boolean",
@@ -111,6 +111,13 @@
111111
"Verbosity": {
112112
"description": "Logging verbosity during build execution. Default is 'Normal'",
113113
"$ref": "#/definitions/Verbosity"
114+
},
115+
"BuildProjectFile": {
116+
"type": [
117+
"null",
118+
"string"
119+
],
120+
"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."
114121
}
115122
}
116123
}
@@ -120,11 +127,11 @@
120127
"properties": {
121128
"Configuration": {
122129
"type": "string",
123-
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
124130
"enum": [
125131
"Debug",
126132
"Release"
127-
]
133+
],
134+
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)"
128135
},
129136
"GithubToken": {
130137
"type": "string",
@@ -137,12 +144,12 @@
137144
"SonarToken": {
138145
"type": "string",
139146
"description": "The key to push to sonarcloud",
140-
"default": "Secrets must be entered via 'nuke :secrets [profile]'"
147+
"default": "Secrets must be entered via 'fallout :secrets [profile]'"
141148
}
142149
}
143150
},
144151
{
145-
"$ref": "#/definitions/NukeBuild"
152+
"$ref": "#/definitions/FalloutBuild"
146153
}
147154
]
148155
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
22
"$schema": "build.schema.json",
3+
"BuildProjectFile": "Pipeline/Build.csproj",
34
"Solution": "aweXpect.Mockolate.slnx"
45
}

.github/dependabot.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ updates:
2020
commit-message:
2121
prefix: chore
2222
groups:
23-
nuke:
23+
fallout:
2424
patterns:
25-
- "Nuke*"
25+
- "Fallout*"
2626
xunit:
2727
patterns:
2828
- "xunit*"

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
with:
2222
dotnet-version: |
2323
8.0.x
24-
10.0.x
24+
10.0.3xx
2525
- name: Run unit tests (windows)
2626
if: matrix.os == 'windows-latest'
2727
run: ./build.ps1 CodeCoverage
@@ -51,7 +51,7 @@ jobs:
5151
with:
5252
dotnet-version: |
5353
8.0.x
54-
10.0.x
54+
10.0.3xx
5555
- name: API checks
5656
run: ./build.sh ApiChecks
5757
- name: Upload artifacts
@@ -78,7 +78,7 @@ jobs:
7878
with:
7979
dotnet-version: |
8080
8.0.x
81-
10.0.x
81+
10.0.3xx
8282
- name: Run mutation tests
8383
run: ./build.sh MutationTests MutationTestDashboard
8484

@@ -98,7 +98,7 @@ jobs:
9898
with:
9999
dotnet-version: |
100100
8.0.x
101-
10.0.x
101+
10.0.3xx
102102
- name: Run benchmarks
103103
run: ./build.sh Benchmarks
104104

@@ -118,7 +118,7 @@ jobs:
118118
with:
119119
dotnet-version: |
120120
8.0.x
121-
10.0.x
121+
10.0.3xx
122122
- name: Run sonarcloud analysis
123123
run: ./build.sh CodeAnalysis
124124

@@ -156,7 +156,7 @@ jobs:
156156
with:
157157
dotnet-version: |
158158
8.0.x
159-
10.0.x
159+
10.0.3xx
160160
- name: Pack nuget packages
161161
run: ./build.sh Pack
162162
- name: Upload packages

.github/workflows/ci-analysis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
with:
2525
dotnet-version: |
2626
8.0.x
27-
10.0.x
27+
10.0.3xx
2828
- name: Upload mutation dashboard and create comment
2929
run: ./build.sh MutationTestDashboard
3030
env:
@@ -46,7 +46,7 @@ jobs:
4646
with:
4747
dotnet-version: |
4848
8.0.x
49-
10.0.x
49+
10.0.3xx
5050
- name: Create benchmark comment
5151
run: ./build.sh BenchmarkComment
5252
env:

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
with:
2222
dotnet-version: |
2323
8.0.x
24-
10.0.x
24+
10.0.3xx
2525
- name: Run unit tests (windows)
2626
if: matrix.os == 'windows-latest'
2727
run: ./build.ps1 CodeCoverage
@@ -51,7 +51,7 @@ jobs:
5151
with:
5252
dotnet-version: |
5353
8.0.x
54-
10.0.x
54+
10.0.3xx
5555
- name: API checks
5656
run: ./build.sh ApiChecks
5757
- name: Upload artifacts
@@ -77,7 +77,7 @@ jobs:
7777
with:
7878
dotnet-version: |
7979
8.0.x
80-
10.0.x
80+
10.0.3xx
8181
- name: Run mutation tests
8282
run: ./build.sh MutationTests
8383
- name: Upload artifacts
@@ -102,7 +102,7 @@ jobs:
102102
with:
103103
dotnet-version: |
104104
8.0.x
105-
10.0.x
105+
10.0.3xx
106106
- name: Run benchmarks
107107
run: ./build.sh Benchmarks
108108
- name: Upload artifacts
@@ -130,7 +130,7 @@ jobs:
130130
with:
131131
dotnet-version: |
132132
8.0.x
133-
10.0.x
133+
10.0.3xx
134134
- name: Run sonarcloud analysis
135135
run: ./build.sh CodeAnalysis
136136

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
/Artifacts
33
/TestResults
44

5+
# Fallout temporary files
6+
.fallout/temp/
7+
58
# Temporary files from Sonarqube
69
.sonarqube/
710

Directory.Packages.props

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
<PackageVersion Include="Nullable" Version="1.3.1"/>
1313
</ItemGroup>
1414
<ItemGroup>
15-
<PackageVersion Include="Nuke.Common" Version="10.1.0"/>
16-
<PackageVersion Include="Nuke.Components" Version="10.1.0"/>
15+
<PackageVersion Include="Fallout.Common" Version="10.4.0"/>
16+
<PackageVersion Include="Fallout.Components" Version="10.4.0"/>
1717
<PackageVersion Include="LibGit2Sharp" Version="0.31.0"/>
1818
<PackageVersion Include="SharpCompress" Version="0.50.0"/>
19+
<PackageVersion Include="NuGet.Frameworks" Version="7.9.0"/>
1920
</ItemGroup>
2021
<ItemGroup>
2122
<PackageVersion Include="Meziantou.Analyzer" Version="2.0.163"/>

Pipeline/Build.ApiChecks.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
using Nuke.Common;
2-
using Nuke.Common.ProjectModel;
3-
using Nuke.Common.Tooling;
4-
using Nuke.Common.Tools.DotNet;
5-
using static Nuke.Common.Tools.DotNet.DotNetTasks;
1+
using Fallout.Common;
2+
using Fallout.Solutions;
3+
using Fallout.Common.Tooling;
4+
using Fallout.Common.Tools.DotNet;
5+
using static Fallout.Common.Tools.DotNet.DotNetTasks;
66

77
// ReSharper disable AllUnderscoreLocalParameterName
88

Pipeline/Build.Benchmarks.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Text;
5-
using Nuke.Common;
6-
using Nuke.Common.IO;
7-
using Nuke.Common.Tools.DotNet;
5+
using Fallout.Common;
6+
using Fallout.Common.IO;
7+
using Fallout.Common.Tools.DotNet;
88
using Octokit;
99
using Serilog;
10-
using static Nuke.Common.Tools.DotNet.DotNetTasks;
10+
using static Fallout.Common.Tools.DotNet.DotNetTasks;
1111

1212
// ReSharper disable AllUnderscoreLocalParameterName
1313

@@ -59,7 +59,7 @@ partial class Build
5959
Log.Debug("Pull request number: {PullRequestId}", prNumber);
6060
if (int.TryParse(prNumber, out int prId))
6161
{
62-
GitHubClient gitHubClient = new(new ProductHeaderValue("Nuke"));
62+
GitHubClient gitHubClient = new(new ProductHeaderValue("Fallout"));
6363
Credentials tokenAuth = new(GithubToken);
6464
gitHubClient.Credentials = tokenAuth;
6565
IReadOnlyList<IssueComment> comments =

0 commit comments

Comments
 (0)