Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ test: off
after_build:
- "SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%"
- pip install codecov
- codecov -f "./coverage/solution.cobertura"
- codecov -f "./coverage/*.cobertura.xml"
artifacts:
- path: ./artifacts/nuget/*.nupkg
cache:
Expand Down
94 changes: 75 additions & 19 deletions .build/Build.CI.cs
Original file line number Diff line number Diff line change
@@ -1,43 +1,103 @@
using System.Collections.Generic;
using System.Linq;
using Nuke.Common.CI.GitHubActions;
using Rocket.Surgery.Nuke;
using Nuke.Common.CI.GitHubActions.Configuration;
using Rocket.Surgery.Nuke.ContinuousIntegration;
using Rocket.Surgery.Nuke.DotNetCore;
using Rocket.Surgery.Nuke.GithubActions;

#pragma warning disable CA1050

internal class LocalConstants
{
public static string[] PathsIgnore =
{
".codecov.yml",
".editorconfig",
".gitattributes",
".gitignore",
".gitmodules",
".lintstagedrc.js",
".prettierignore",
".prettierrc",
"LICENSE",
"nukeeper.settings.json",
"omnisharp.json",
"package-lock.json",
"package.json",
"Readme.md"
};
}

[GitHubActionsSteps(
"ci-ignore",
GitHubActionsImage.WindowsLatest,
GitHubActionsImage.UbuntuLatest,
On = new[] { GitHubActionsTrigger.Push },
OnPushTags = new[] { "v*" },
OnPushBranches = new[] { "master", "main", "next" },
OnPullRequestBranches = new[] { "master", "main", "next" },
Enhancements = new[] { nameof(CiIgnoreMiddleware) }
)]
[GitHubActionsSteps(
"ci",
GitHubActionsImage.MacOsLatest,
GitHubActionsImage.WindowsLatest,
GitHubActionsImage.UbuntuLatest,
AutoGenerate = false,
On = new[] { GitHubActionsTrigger.Push },
OnPushTags = new[] { "v*" },
OnPushBranches = new[] { "master", "next" },
OnPullRequestBranches = new[] { "master", "next" },
OnPushBranches = new[] { "master", "main", "next" },
OnPullRequestBranches = new[] { "master", "main", "next" },
InvokedTargets = new[] { nameof(Default) },
NonEntryTargets = new[]
{
nameof(ICIEnvironment.CIEnvironment),
nameof(ITriggerCodeCoverageReports.Trigger_Code_Coverage_Reports),
nameof(ITriggerCodeCoverageReports.Generate_Code_Coverage_Report_Cobertura),
nameof(IGenerateCodeCoverageBadges.Generate_Code_Coverage_Badges),
nameof(IGenerateCodeCoverageReport.Generate_Code_Coverage_Report),
nameof(IGenerateCodeCoverageSummary.Generate_Code_Coverage_Summary),
nameof(ITriggerCodeCoverageReports.TriggerCodeCoverageReports),
nameof(ITriggerCodeCoverageReports.GenerateCodeCoverageReportCobertura),
nameof(IGenerateCodeCoverageBadges.GenerateCodeCoverageBadges),
nameof(IGenerateCodeCoverageReport.GenerateCodeCoverageReport),
nameof(IGenerateCodeCoverageSummary.GenerateCodeCoverageSummary),
nameof(Default)
},
ExcludedTargets = new[] { nameof(ICanClean.Clean), nameof(ICanRestoreWithDotNetCore.DotnetToolRestore) },
Enhancements = new[] { nameof(Middleware) }
Enhancements = new[] { nameof(CiMiddleware) }
)]
[PrintBuildVersion]
[PrintCIEnvironment]
[UploadLogs]
[TitleEvents]
public partial class Solution
{
public static RocketSurgeonGitHubActionsConfiguration Middleware(RocketSurgeonGitHubActionsConfiguration configuration)
public static RocketSurgeonGitHubActionsConfiguration CiIgnoreMiddleware(
RocketSurgeonGitHubActionsConfiguration configuration
)
{
var buildJob = configuration.Jobs.First(z => z.Name == "Build");
foreach (var item in configuration.DetailedTriggers.OfType<RocketSurgeonGitHubActionsVcsTrigger>())
{
item.IncludePaths = LocalConstants.PathsIgnore;
}

configuration.Jobs.RemoveAt(1);
( (RocketSurgeonsGithubActionsJob)configuration.Jobs[0] ).Steps = new List<GitHubActionsStep>
{
new RunStep("N/A")
{
Run = "echo \"No build required\""
}
};

return configuration;
}

public static RocketSurgeonGitHubActionsConfiguration CiMiddleware(
RocketSurgeonGitHubActionsConfiguration configuration
)
{
foreach (var item in configuration.DetailedTriggers.OfType<RocketSurgeonGitHubActionsVcsTrigger>())
{
item.ExcludePaths = LocalConstants.PathsIgnore;
}

var buildJob = configuration.Jobs.OfType<RocketSurgeonsGithubActionsJob>().First(z => z.Name == "Build");
buildJob.FailFast = false;
var checkoutStep = buildJob.Steps.OfType<CheckoutStep>().Single();
// For fetch all
checkoutStep.FetchDepth = 0;
Expand All @@ -57,10 +117,6 @@ public static RocketSurgeonGitHubActionsConfiguration Middleware(RocketSurgeonGi
{
DotNetVersion = "3.1.x"
},
new SetupDotNetStep("Use .NET Core 5.0 SDK")
{
DotNetVersion = "5.0.x"
},
new SetupDotNetStep("Use .NET Core 6.0 SDK")
{
DotNetVersion = "6.0.x"
Expand Down Expand Up @@ -117,4 +173,4 @@ public static RocketSurgeonGitHubActionsConfiguration Middleware(RocketSurgeonGi

return configuration;
}
}
}
42 changes: 20 additions & 22 deletions .build/Build.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
using JetBrains.Annotations;
using Nuke.Common;
using Nuke.Common.CI;
using Nuke.Common.Execution;
using Nuke.Common.Git;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.GitVersion;
using Nuke.Common.Tools.MSBuild;
using Rocket.Surgery.Nuke;
using Rocket.Surgery.Nuke.DotNetCore;

[PublicAPI]
Expand Down Expand Up @@ -34,40 +32,40 @@ public partial class Solution : NukeBuild,
ICanLint
{
/// <summary>
/// Support plugins are available for:
/// - JetBrains ReSharper https://nuke.build/resharper
/// - JetBrains Rider https://nuke.build/rider
/// - Microsoft VisualStudio https://nuke.build/visualstudio
/// - Microsoft VSCode https://nuke.build/vscode
/// Support plugins are available for:
/// - JetBrains ReSharper https://nuke.build/resharper
/// - JetBrains Rider https://nuke.build/rider
/// - Microsoft VisualStudio https://nuke.build/visualstudio
/// - Microsoft VSCode https://nuke.build/vscode
/// </summary>
public static int Main() => Execute<Solution>(x => x.Default);
public static int Main()
{
return Execute<Solution>(x => x.Default);
}

[OptionalGitRepository]
public GitRepository? GitRepository { get; }
[OptionalGitRepository] public GitRepository? GitRepository { get; }

private Target Default => _ => _
.DependsOn(Restore)
.DependsOn(Build)
.DependsOn(Test)
.DependsOn(Pack);
.DependsOn(Restore)
.DependsOn(Build)
.DependsOn(Test)
.DependsOn(Pack);

public Target Build => _ => _.Inherit<ICanBuildWithDotNetCore>(x => x.CoreBuild);

public Target Pack => _ => _.Inherit<ICanPackWithDotNetCore>(x => x.CorePack)
.DependsOn(Clean);
.DependsOn(Clean);

[ComputedGitVersion]
public GitVersion GitVersion { get; } = null!;
[ComputedGitVersion] public GitVersion GitVersion { get; } = null!;

public Target Clean => _ => _.Inherit<ICanClean>(x => x.Clean);
public Target Lint => _ => _.Inherit<ICanLint>(x => x.Lint);
public Target Restore => _ => _.Inherit<ICanRestoreWithDotNetCore>(x => x.CoreRestore);
public Target Test => _ => _.Inherit<ICanTestWithDotNetCore>(x => x.CoreTest);

public Target BuildVersion => _ => _.Inherit<IHaveBuildVersion>(x => x.BuildVersion)
.Before(Default)
.Before(Clean);
.Before(Default)
.Before(Clean);

[Parameter("Configuration to build")]
public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release;
}
[Parameter("Configuration to build")] public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release;
}
13 changes: 9 additions & 4 deletions .build/Configuration.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
using System.ComponentModel;
using Nuke.Common.Tooling;

#pragma warning disable CA1050, CA1724, CA2225

[TypeConverter(typeof(TypeConverter<Configuration>))]
public class Configuration : Enumeration
{
public static readonly Configuration Debug = new Configuration { Value = nameof(Debug) };
public static readonly Configuration Release = new Configuration { Value = nameof(Release) };
public static readonly Configuration Debug = new() { Value = nameof(Debug) };
public static readonly Configuration Release = new() { Value = nameof(Release) };

public static implicit operator string(Configuration configuration) => configuration.Value;
}
public static implicit operator string(Configuration configuration)
{
return configuration.Value;
}
}
14 changes: 9 additions & 5 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,32 @@
"commands": ["dotnet-outdated"]
},
"gitversion.tool": {
"version": "5.6.8",
"version": "5.8.1",
"commands": ["dotnet-gitversion"]
},
"dotnet-reportgenerator-globaltool": {
"version": "4.8.7",
"version": "5.0.2",
"commands": ["reportgenerator"]
},
"nuke.globaltool": {
"version": "5.2.1",
"version": "6.0.1",
"commands": ["nuke"]
},
"codecov.tool": {
"version": "1.13.0",
"commands": ["codecov"]
},
"jetbrains.resharper.globaltools": {
"version": "2021.3.0-eap02",
"version": "2021.3.2",
"commands": ["jb"]
},
"dotnet-format": {
"version": "5.1.225507",
"version": "5.1.250801",
"commands": ["dotnet-format"]
},
"nukeeper": {
"version": "0.35.0",
"commands": ["nukeeper"]
}
}
}
69 changes: 34 additions & 35 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ insert_final_newline = true
max_line_length = 160

[*]
insert_final_newline = false

#### .NET Coding Conventions ####

# Organize usings
Expand Down Expand Up @@ -204,28 +202,28 @@ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = *
dotnet_naming_symbols.interface.required_modifiers = *
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.local.applicable_kinds = local, local_function
dotnet_naming_symbols.local.applicable_accessibilities = *
dotnet_naming_symbols.local.required_modifiers = dotnet_naming_symbols
.type_parameter.applicable_kinds = type_parameter
dotnet_naming_symbols.local.required_modifiers =
dotnet_naming_symbols.type_parameter.applicable_kinds = type_parameter
dotnet_naming_symbols.type_parameter.applicable_accessibilities = *
dotnet_naming_symbols.type_parameter.required_modifiers = dotnet_naming_symbols
.types.applicable_kinds = class, struct, interface, enum, delegate
dotnet_naming_symbols.type_parameter.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum, delegate
dotnet_naming_symbols.types.applicable_accessibilities = *
dotnet_naming_symbols.types.required_modifiers = dotnet_naming_symbols
.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = *
dotnet_naming_symbols.non_field_members.required_modifiers = dotnet_naming_symbols
.private_field.applicable_kinds = field
dotnet_naming_symbols.non_field_members.required_modifiers =
dotnet_naming_symbols.private_field.applicable_kinds = field
dotnet_naming_symbols.private_field.applicable_accessibilities = private, private_protected
dotnet_naming_symbols.private_field.required_modifiers = dotnet_naming_symbols
.field.applicable_kinds = field
dotnet_naming_symbols.field.applicable_accessibilities = public, internal, friend, protected, protected_internal, protected_friend
dotnet_naming_symbols.field.required_modifiers = dotnet_naming_symbols
.static_field.applicable_kinds = field
dotnet_naming_symbols.static_field.applicable_accessibilities = *
dotnet_naming_symbols.private_field.required_modifiers =
dotnet_naming_symbols.field.applicable_kinds = field
dotnet_naming_symbols.field.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.field.required_modifiers =
dotnet_naming_symbols.static_field.applicable_kinds = field
dotnet_naming_symbols.static_field.applicable_accessibilities =
dotnet_naming_symbols.static_field.required_modifiers = static

dotnet_naming_symbols.const_field.applicable_kinds = field
Expand All @@ -234,30 +232,30 @@ dotnet_naming_symbols.const_field.required_modifiers = const

# Naming styles

dotnet_naming_style.pascal_case.required_prefix = dotnet_naming_style
.pascal_case.required_suffix = dotnet_naming_style
.pascal_case.word_separator = dotnet_naming_style
.pascal_case.capitalization = pascal_case
# dotnet_naming_style.pascal_case.required_prefix =
# dotnet_naming_style.pascal_case.required_suffix =
# dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.camel_case.required_prefix = dotnet_naming_style
.camel_case.required_suffix = dotnet_naming_style
.camel_case.word_separator = dotnet_naming_style
.camel_case.capitalization = camel_case
# dotnet_naming_style.camel_case.required_prefix =
# dotnet_naming_style.camel_case.required_suffix =
# dotnet_naming_style.camel_case.word_separator =
dotnet_naming_style.camel_case.capitalization = camel_case

dotnet_naming_style._camel_case.required_prefix = _
dotnet_naming_style._camel_case.required_suffix = dotnet_naming_style
._camel_case.word_separator = dotnet_naming_style
._camel_case.capitalization = camel_case
# dotnet_naming_style._camel_case.required_suffix =
# dotnet_naming_style._camel_case.word_separator =
dotnet_naming_style._camel_case.capitalization = camel_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix = dotnet_naming_style
.begins_with_i.word_separator = dotnet_naming_style
.begins_with_i.capitalization = pascal_case
# dotnet_naming_style.begins_with_i.required_suffix =
# dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case

dotnet_naming_style.begins_with_t.required_prefix = T
dotnet_naming_style.begins_with_t.required_suffix = dotnet_naming_style
.begins_with_t.word_separator = dotnet_naming_style
.begins_with_t.capitalization = pascal_case
# dotnet_naming_style.begins_with_t.required_suffix =
# dotnet_naming_style.begins_with_t.word_separator =
dotnet_naming_style.begins_with_t.capitalization = pascal_case

dotnet_diagnostic.ide0058.severity = none

Expand Down Expand Up @@ -1009,6 +1007,7 @@ resharper_use_null_propagation_when_possible_highlighting = suggestion
resharper_web_config_module_not_resolved_highlighting = warning
resharper_web_config_type_not_resolved_highlighting = warning
resharper_web_config_wrong_module_highlighting = warning
resharper_partial_type_with_single_part_highlighting = none

ij_xml_align_attributes = true
ij_xml_align_text = false
Expand Down Expand Up @@ -1040,7 +1039,7 @@ dotnet_naming_symbols.unity_serialized_field_symbols.applicable_kinds =
dotnet_naming_symbols.unity_serialized_field_symbols.resharper_applicable_kinds = unity_serialised_field
dotnet_naming_symbols.unity_serialized_field_symbols.resharper_required_modifiers = instance

[*.{appxmanifest,asax,ascx,aspx,axaml,build,cg,cginc,compute,cs,cshtml,dtd,fs,fsi,fsscript,fsx,hlsl,hlsli,hlslinc,master,ml,mli,nuspec,paml,razor,resw,resx,shader,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}]
[*.{appxmanifest,asax,ascx,aspx,axaml,build,cg,cginc,compute,dtd,fs,fsi,fsscript,fsx,hlsl,hlsli,hlslinc,master,ml,mli,nuspec,paml,resw,resx,shader,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}]
indent_style = space
indent_size = 4
tab_width = 4
Loading