Skip to content

Commit 1a9d82a

Browse files
authored
Upgrade to NUKE 8.1 (#150)
* use latest GitHub actions definitions
1 parent 7063017 commit 1a9d82a

File tree

7 files changed

+110
-98
lines changed

7 files changed

+110
-98
lines changed

.github/workflows/BuildAndPack.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ jobs:
3232
name: ubuntu-latest
3333
runs-on: ubuntu-latest
3434
steps:
35-
- uses: actions/checkout@v3
36-
- uses: actions/setup-dotnet@v3
35+
- uses: actions/checkout@v4
36+
- uses: actions/setup-dotnet@v4
3737
with:
3838
dotnet-version: |
3939
8.0.x
@@ -63,8 +63,8 @@ jobs:
6363
name: windows-latest
6464
runs-on: windows-latest
6565
steps:
66-
- uses: actions/checkout@v3
67-
- uses: actions/setup-dotnet@v3
66+
- uses: actions/checkout@v4
67+
- uses: actions/setup-dotnet@v4
6868
with:
6969
dotnet-version: |
7070
8.0.x
@@ -94,8 +94,8 @@ jobs:
9494
name: macos-13 # latest is arm64, and it breaks a bunch of stuff
9595
runs-on: macos-13 # latest is arm64, and it breaks a bunch of stuff
9696
steps:
97-
- uses: actions/checkout@v3
98-
- uses: actions/setup-dotnet@v3
97+
- uses: actions/checkout@v4
98+
- uses: actions/setup-dotnet@v4
9999
with:
100100
dotnet-version: |
101101
8.0.x

.nuke/build.schema.json

Lines changed: 73 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,89 @@
11
{
22
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"title": "Build Schema",
4-
"$ref": "#/definitions/build",
3+
"properties": {
4+
"Configuration": {
5+
"type": "string",
6+
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
7+
"enum": [
8+
"Debug",
9+
"Release"
10+
]
11+
},
12+
"GithubToken": {
13+
"type": "string"
14+
},
15+
"NuGetToken": {
16+
"type": "string"
17+
},
18+
"PackagesDirectory": {
19+
"type": "string"
20+
},
21+
"Solution": {
22+
"type": "string",
23+
"description": "Path to a solution file that is automatically loaded"
24+
}
25+
},
526
"definitions": {
6-
"build": {
7-
"type": "object",
27+
"Host": {
28+
"type": "string",
29+
"enum": [
30+
"AppVeyor",
31+
"AzurePipelines",
32+
"Bamboo",
33+
"Bitbucket",
34+
"Bitrise",
35+
"GitHubActions",
36+
"GitLab",
37+
"Jenkins",
38+
"Rider",
39+
"SpaceAutomation",
40+
"TeamCity",
41+
"Terminal",
42+
"TravisCI",
43+
"VisualStudio",
44+
"VSCode"
45+
]
46+
},
47+
"ExecutableTarget": {
48+
"type": "string",
49+
"enum": [
50+
"Clean",
51+
"Compile",
52+
"Pack",
53+
"PushToNuGet",
54+
"Restore",
55+
"Test",
56+
"TestPackages"
57+
]
58+
},
59+
"Verbosity": {
60+
"type": "string",
61+
"description": "",
62+
"enum": [
63+
"Verbose",
64+
"Normal",
65+
"Minimal",
66+
"Quiet"
67+
]
68+
},
69+
"NukeBuild": {
870
"properties": {
9-
"Configuration": {
10-
"type": "string",
11-
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
12-
"enum": [
13-
"Debug",
14-
"Release"
15-
]
16-
},
1771
"Continue": {
1872
"type": "boolean",
1973
"description": "Indicates to continue a previously failed build attempt"
2074
},
21-
"GithubToken": {
22-
"type": "string"
23-
},
2475
"Help": {
2576
"type": "boolean",
2677
"description": "Shows the help text for this build assembly"
2778
},
2879
"Host": {
29-
"type": "string",
3080
"description": "Host for execution. Default is 'automatic'",
31-
"enum": [
32-
"AppVeyor",
33-
"AzurePipelines",
34-
"Bamboo",
35-
"Bitrise",
36-
"GitHubActions",
37-
"GitLab",
38-
"Jenkins",
39-
"Rider",
40-
"SpaceAutomation",
41-
"TeamCity",
42-
"Terminal",
43-
"TravisCI",
44-
"VisualStudio",
45-
"VSCode"
46-
]
81+
"$ref": "#/definitions/Host"
4782
},
4883
"NoLogo": {
4984
"type": "boolean",
5085
"description": "Disables displaying the NUKE logo"
5186
},
52-
"NuGetToken": {
53-
"type": "string"
54-
},
55-
"PackagesDirectory": {
56-
"type": "string"
57-
},
5887
"Partition": {
5988
"type": "string",
6089
"description": "Partition to use on CI"
@@ -78,49 +107,22 @@
78107
"type": "array",
79108
"description": "List of targets to be skipped. Empty list skips all dependencies",
80109
"items": {
81-
"type": "string",
82-
"enum": [
83-
"Clean",
84-
"Compile",
85-
"Pack",
86-
"PushToNuGet",
87-
"Restore",
88-
"Test",
89-
"TestPackages"
90-
]
110+
"$ref": "#/definitions/ExecutableTarget"
91111
}
92112
},
93-
"Solution": {
94-
"type": "string",
95-
"description": "Path to a solution file that is automatically loaded"
96-
},
97113
"Target": {
98114
"type": "array",
99115
"description": "List of targets to be invoked. Default is '{default_target}'",
100116
"items": {
101-
"type": "string",
102-
"enum": [
103-
"Clean",
104-
"Compile",
105-
"Pack",
106-
"PushToNuGet",
107-
"Restore",
108-
"Test",
109-
"TestPackages"
110-
]
117+
"$ref": "#/definitions/ExecutableTarget"
111118
}
112119
},
113120
"Verbosity": {
114-
"type": "string",
115121
"description": "Logging verbosity during build execution. Default is 'Normal'",
116-
"enum": [
117-
"Minimal",
118-
"Normal",
119-
"Quiet",
120-
"Verbose"
121-
]
122+
"$ref": "#/definitions/Verbosity"
122123
}
123124
}
124125
}
125-
}
126-
}
126+
},
127+
"$ref": "#/definitions/NukeBuild"
128+
}

build.ps1

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ $TempDirectory = "$PSScriptRoot\\.nuke\temp"
1818

1919
$DotNetGlobalFile = "$PSScriptRoot\\global.json"
2020
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1"
21-
$DotNetChannel = "Current"
21+
$DotNetChannel = "STS"
2222

23-
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1
2423
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1
25-
$env:DOTNET_MULTILEVEL_LOOKUP = 0
24+
$env:DOTNET_NOLOGO = 1
2625

2726
###########################################################################
2827
# EXECUTION
@@ -61,9 +60,15 @@ else {
6160
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath }
6261
}
6362
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe"
63+
$env:PATH = "$DotNetDirectory;$env:PATH"
6464
}
6565

66-
Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)"
66+
Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)"
67+
68+
if (Test-Path env:NUKE_ENTERPRISE_TOKEN) {
69+
& $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null
70+
& $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null
71+
}
6772

6873
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet }
6974
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }

build.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp"
1414

1515
DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json"
1616
DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh"
17-
DOTNET_CHANNEL="Current"
17+
DOTNET_CHANNEL="STS"
1818

1919
export DOTNET_CLI_TELEMETRY_OPTOUT=1
20-
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
21-
export DOTNET_MULTILEVEL_LOOKUP=0
20+
export DOTNET_NOLOGO=1
2221

2322
###########################################################################
2423
# EXECUTION
@@ -54,9 +53,15 @@ else
5453
"$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path
5554
fi
5655
export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet"
56+
export PATH="$DOTNET_DIRECTORY:$PATH"
5757
fi
5858

59-
echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)"
59+
echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)"
60+
61+
if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "$NUKE_ENTERPRISE_TOKEN" != "" ]]; then
62+
"$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true
63+
"$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true
64+
fi
6065

6166
"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet
6267
"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@"

build/Build.cs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
using Nuke.Common;
22
using Nuke.Common.CI;
33
using Nuke.Common.CI.GitHubActions;
4-
using Nuke.Common.Execution;
54
using Nuke.Common.IO;
65
using Nuke.Common.ProjectModel;
76
using Nuke.Common.Tooling;
87
using Nuke.Common.Tools.DotNet;
98
using Nuke.Common.Utilities.Collections;
109
using static Nuke.Common.EnvironmentInfo;
11-
using static Nuke.Common.IO.FileSystemTasks;
12-
using static Nuke.Common.IO.PathConstruction;
1310
using static Nuke.Common.Tools.DotNet.DotNetTasks;
1411

1512
[ShutdownDotNetAfterServerBuild]
@@ -37,16 +34,16 @@ class Build : NukeBuild
3734
[Parameter] readonly AbsolutePath PackagesDirectory = RootDirectory / "packages";
3835

3936
const string NugetOrgUrl = "https://api.nuget.org/v3/index.json";
40-
bool IsTag => GitHubActions.Instance?.GitHubRef?.StartsWith("refs/tags/") ?? false;
37+
bool IsTag => GitHubActions.Instance?.Ref?.StartsWith("refs/tags/") ?? false;
4138

4239
Target Clean => _ => _
4340
.Before(Restore)
4441
.Executes(() =>
4542
{
46-
SourceDirectory.GlobDirectories("**/bin", "**/obj").ForEach(DeleteDirectory);
47-
TestsDirectory.GlobDirectories("**/bin", "**/obj").ForEach(DeleteDirectory);
48-
EnsureCleanDirectory(PackagesDirectory);
49-
EnsureCleanDirectory(ArtifactsDirectory);
43+
SourceDirectory.GlobDirectories("**/bin", "**/obj").ForEach(x => x.DeleteDirectory());
44+
TestsDirectory.GlobDirectories("**/bin", "**/obj").ForEach(x => x.DeleteDirectory());
45+
PackagesDirectory.CreateOrCleanDirectory();
46+
ArtifactsDirectory.CreateOrCleanDirectory();
5047
});
5148

5249
Target Restore => _ => _
@@ -108,8 +105,8 @@ class Build : NukeBuild
108105

109106
if (!string.IsNullOrEmpty(PackagesDirectory))
110107
{
111-
DeleteDirectory(PackagesDirectory / "stronglytypedid");
112-
DeleteDirectory(PackagesDirectory / "stronglytypedid.attributes");
108+
(PackagesDirectory / "stronglytypedid").DeleteDirectory();
109+
(PackagesDirectory / "stronglytypedid.attributes").DeleteDirectory();
113110
}
114111

115112
DotNetRestore(s => s

build/_build.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net7.0</TargetFramework>
5+
<TargetFramework>net8.0</TargetFramework>
66
<RootNamespace></RootNamespace>
77
<NoWarn>CS0649;CS0169</NoWarn>
88
<NukeRootDirectory>..</NukeRootDirectory>
@@ -11,7 +11,7 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Nuke.Common" Version="5.3.0" />
14+
<PackageReference Include="Nuke.Common" Version="8.1.0" />
1515
</ItemGroup>
1616

1717
</Project>

build/_build.csproj.DotSettings

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ANONYMOUSMETHOD_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
1717
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
1818
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
19+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=4a98fdf6_002D7d98_002D4f5a_002Dafeb_002Dea44ad98c70c/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;Kind Name="READONLY_FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;&lt;/Policy&gt;</s:String>
20+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=f9fce829_002De6f4_002D4cb2_002D80f1_002D5497c44f51df/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;&lt;/Policy&gt;</s:String>
1921
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
2022
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
2123
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
@@ -24,4 +26,5 @@
2426
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean>
2527
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
2628
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
27-
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
29+
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
30+
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

0 commit comments

Comments
 (0)