Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .build/.build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,8 @@
<Content Include="..\.github\**\*.*" Link=".github\%(RecursiveDir)%(Filename)%(Extension)"/>
<Content Include="..\.nuke\**\*.*" Link=".nuke\%(RecursiveDir)%(Filename)%(Extension)"/>
</ItemGroup>
<!-- <Import Project="../src/Airframe/build/Rocket.Surgery.Nuke.targets" /> -->

<ItemGroup>
<Compile Remove="ICanTestWithDotNetCoreNoBuild.cs" />
</ItemGroup>
</Project>
1 change: 0 additions & 1 deletion .build/AirframeBuild.GitHubActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
NonEntryTargets =
[
nameof(ICIEnvironment.CIEnvironment),
nameof(ITriggerCodeCoverageReports.TriggerCodeCoverageReports),
nameof(ITriggerCodeCoverageReports.GenerateCodeCoverageReportCobertura),
nameof(IGenerateCodeCoverageBadges.GenerateCodeCoverageBadges),
nameof(IGenerateCodeCoverageReport.GenerateCodeCoverageReport),
Expand Down
12 changes: 6 additions & 6 deletions .build/AirframeBuild.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ public partial class AirframeBuild : NukeBuild,
ICanBuildWithDotNetCore,
ICanTestWithDotNetCore,
ICanPackWithDotNetCore,
IHaveDataCollector,
ICanClean,
ICanLintStagedFiles,
ICanDotNetFormat,
IHavePublicApis,
ICanUpdateReadme,
Expand All @@ -49,10 +47,10 @@ public partial class AirframeBuild : NukeBuild,
.DependsOn(Pack);

public Target Clean => definition => definition.Inherit<ICanClean>(canClean => canClean.Clean);
public Target Restore => definition => definition.Inherit<ICanRestoreWithDotNetCore>(dotNetCore => dotNetCore.CoreRestore);
public Target Build => definition => definition.Inherit<ICanBuildWithDotNetCore>(dotNetCore => dotNetCore.CoreBuild);
public Target Test => definition => definition.Inherit<ICanTestWithDotNetCore>(dotNetCore => dotNetCore.CoreTest);
public Target Pack => definition => definition.Inherit<ICanPackWithDotNetCore>(dotNetCore => dotNetCore.CorePack)
public Target Restore => definition => definition.Inherit<ICanRestoreWithDotNetCore>(dotNetCore => dotNetCore.DotnetCoreRestore);
public Target Build => definition => definition.Inherit<ICanBuildWithDotNetCore>(dotNetCore => dotNetCore.DotnetCoreBuild);
public Target Test => definition => definition.Inherit<ICanTestWithDotNetCore>(dotNetCore => dotNetCore.DotnetCoreTest);
public Target Pack => definition => definition.Inherit<ICanPackWithDotNetCore>(dotNetCore => dotNetCore.DotnetCorePack)
.DependsOn(Clean)
.After(Test);

Expand All @@ -69,4 +67,6 @@ public partial class AirframeBuild : NukeBuild,

[Parameter("Configuration to build")]
public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release;

public Target Lint => definition => definition;
}
5 changes: 2 additions & 3 deletions .build/ICanTestWithDotNetCoreNoBuild.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
/// <summary>
/// Defines a `dotnet test` test run with code coverage via coverlet
/// </summary>
public interface ICanTestWithDotNetCoreNoBuild : IHaveCollectCoverage,
IHaveBuildTarget,
public interface ICanTestWithDotNetCoreNoBuild : IHaveBuildTarget,
ITriggerCodeCoverageReports,
IComprehendTests,
IHaveTestArtifacts,
Expand All @@ -34,7 +33,7 @@ public interface ICanTestWithDotNetCoreNoBuild : IHaveCollectCoverage,
.Executes(
() =>
{
FileSystemTasks.EnsureCleanDirectory(TestResultsDirectory);
FileSystem.EnsureCleanDirectory(TestResultsDirectory);
CoverageDirectory.GlobFiles("*.cobertura.xml", "*.opencover.xml", "*.json", "*.info")
.Where(x => Guid.TryParse(Path.GetFileName(x)?.Split('.')[0], out var _))
.ForEach(FileSystemTasks.DeleteFile);
Expand Down
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"commands": ["reportgenerator"]
},
"nuke.globaltool": {
"version": "7.0.6",
"version": "9.0.4",
"commands": ["nuke"]
},
"codecov.tool": {
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,22 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.101'
- name: 🎁 dotnet tool restore
- name: 🚒 dotnet workload restore
continue-on-error: true
run: |
dotnet workload restore
- name: ⚒️ dotnet tool restore
run: |
dotnet tool restore
- name: Workloads
- name: 🚒 Workloads
id: workloads
run: |
dotnet nuke Workloads --skip
- name: 🎁 Restore
id: restore
run: |
dotnet nuke Restore --skip
- name: ⚙ Build
- name: ⚙ Build
id: build
run: |
dotnet nuke Build --skip
Expand Down
223 changes: 104 additions & 119 deletions .nuke/build.schema.json
Original file line number Diff line number Diff line change
@@ -1,62 +1,83 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"$ref": "#/definitions/build",
"title": "Build Schema",
"definitions": {
"build": {
"type": "object",
"Host": {
"type": "string",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitbucket",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"ExecutableTarget": {
"type": "string",
"enum": [
"Build",
"Clean",
"CoreBuild",
"CorePack",
"CoreRestore",
"CoreTest",
"Default",
"DotNetFormat",
"DotnetToolRestore",
"GenerateCodeCoverageBadges",
"GenerateCodeCoverageReport",
"GenerateCodeCoverageReportCobertura",
"GenerateCodeCoverageSummary",
"GenerateReadme",
"GitHubActions",
"JetBrainsCleanupCode",
"Lint",
"LintGitAdd",
"LintPublicApiAnalyzers",
"LintStaged",
"MoveUnshippedToShipped",
"Pack",
"PostLint",
"RegenerateBuildConfigurations",
"Restore",
"ShipPublicApis",
"Test",
"TriggerCodeCoverageReports",
"Workloads"
]
},
"Verbosity": {
"type": "string",
"description": "",
"enum": [
"Verbose",
"Normal",
"Minimal",
"Quiet"
]
},
"NukeBuild": {
"properties": {
"Artifacts": {
"type": "string",
"description": "The directory where artifacts are to be dropped"
},
"Configuration": {
"type": "string",
"description": "Configuration to build",
"enum": [
"Debug",
"Release"
]
},
"Continue": {
"type": "boolean",
"description": "Indicates to continue a previously failed build attempt"
},
"Coverage": {
"type": "string",
"description": "The directory where coverage artifacts are to be dropped"
},
"Help": {
"type": "boolean",
"description": "Shows the help text for this build assembly"
},
"Host": {
"type": "string",
"description": "Host for execution. Default is 'automatic'",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitbucket",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"lint-files": {
"type": "array",
"description": "The files to lint, if not given lints all files",
"items": {
"type": "string"
}
"$ref": "#/definitions/Host"
},
"NoLogo": {
"type": "boolean",
Expand Down Expand Up @@ -85,93 +106,57 @@
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
"items": {
"type": "string",
"enum": [
"Build",
"Clean",
"CoreBuild",
"CorePack",
"CoreRestore",
"CoreTest",
"Default",
"DotNetFormat",
"DotnetToolRestore",
"GenerateCodeCoverageBadges",
"GenerateCodeCoverageReport",
"GenerateCodeCoverageReportCobertura",
"GenerateCodeCoverageSummary",
"GenerateReadme",
"GitHubActions",
"JetBrainsCleanupCode",
"Lint",
"LintGitAdd",
"LintPublicApiAnalyzers",
"LintStaged",
"MoveUnshippedToShipped",
"Pack",
"PostLint",
"RegenerateBuildConfigurations",
"Restore",
"ShipPublicApis",
"Test",
"TriggerCodeCoverageReports",
"Workloads"
]
"$ref": "#/definitions/ExecutableTarget"
}
},
"Solution": {
"type": "string",
"description": "Path to a solution file that is automatically loaded"
},
"Target": {
"type": "array",
"description": "List of targets to be invoked. Default is '{default_target}'",
"items": {
"type": "string",
"enum": [
"Build",
"Clean",
"CoreBuild",
"CorePack",
"CoreRestore",
"CoreTest",
"Default",
"DotNetFormat",
"DotnetToolRestore",
"GenerateCodeCoverageBadges",
"GenerateCodeCoverageReport",
"GenerateCodeCoverageReportCobertura",
"GenerateCodeCoverageSummary",
"GenerateReadme",
"GitHubActions",
"JetBrainsCleanupCode",
"Lint",
"LintGitAdd",
"LintPublicApiAnalyzers",
"LintStaged",
"MoveUnshippedToShipped",
"Pack",
"PostLint",
"RegenerateBuildConfigurations",
"Restore",
"ShipPublicApis",
"Test",
"TriggerCodeCoverageReports",
"Workloads"
]
"$ref": "#/definitions/ExecutableTarget"
}
},
"Verbosity": {
"type": "string",
"description": "Logging verbosity during build execution. Default is 'Normal'",
"$ref": "#/definitions/Verbosity"
}
}
}
},
"allOf": [
{
"properties": {
"Artifacts": {
"type": "string",
"description": "The directory where artifacts are to be dropped"
},
"Configuration": {
"type": "string",
"description": "Configuration to build",
"enum": [
"Minimal",
"Normal",
"Quiet",
"Verbose"
"Debug",
"Release"
]
},
"Coverage": {
"type": "string",
"description": "The directory where coverage artifacts are to be dropped"
},
"lint-files": {
"type": "array",
"description": "The files to lint, if not given lints all files",
"items": {
"type": "string"
}
},
"Solution": {
"type": "string",
"description": "Path to a solution file that is automatically loaded"
}
}
},
{
"$ref": "#/definitions/NukeBuild"
}
}
]
}
12 changes: 6 additions & 6 deletions directory.packages.props
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<Project>
<ItemGroup>
<PackageVersion Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3"/>
<PackageVersion Include="Rocket.Surgery.Build.Metadata" Version="3.3.11" PrivateAssets="All"/>
<PackageVersion Include="Rocket.Surgery.Build.Metadata" Version="3.3.11"/>
<PackageVersion Include="Rocket.Surgery.MSBuild.Metadata" Version="1.1.0"/>
<PackageVersion Include="Rocket.Surgery.MSBuild.SourceLink" Version="1.2.1"/>
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0"/>
<PackageVersion Include="Rocket.Surgery.MSBuild.CI" Version="1.2.1"/>
<PackageVersion Include="Rocket.Surgery.MSBuild.GitVersion" Version="1.2.1"/>
<PackageVersion Include="Rocket.Surgery.MSBuild.JetBrains.Annotations" Version="1.2.1" Condition="'$(MSBuildProjectName)'!='.build'"/>
</ItemGroup>
<ItemGroup>
<PackageVersion Include="stylecop.analyzers" Version="1.2.0-beta.556"/>
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0" PrivateAssets="all"/>
<PackageVersion Include="Roslynator.Analyzers" Version="4.14.0" PrivateAssets="All"/>
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0"/>
<PackageVersion Include="Roslynator.Analyzers" Version="4.8.0"/>
</ItemGroup>
<ItemGroup>
<PackageVersion Include="GitVersion.Tool" Version="5.12.0"/>
<PackageVersion Include="JetBrains.ReSharper.CommandLineTools" Version="2023.3.6"/>
<PackageVersion Include="NuGet.CommandLine" Version="6.14.0"/>
<PackageVersion Include="Nuke.Common" Version="8.0.0"/>
<PackageVersion Include="Nuke.Common" Version="9.0.4"/>
<PackageVersion Include="ReportGenerator" Version="5.4.12"/>
<PackageVersion Include="Rocket.Surgery.Nuke" Version="1.8.16"/>
<PackageVersion Include="Rocket.Surgery.Nuke" Version="2.9.11"/>
</ItemGroup>
<ItemGroup>
<PackageVersion Include="BenchmarkDotNet" Version="0.15.2"/>
Expand Down
Loading