Skip to content

Commit af5ab32

Browse files
committed
Add build scope and set it to "CoreOnly"
1 parent 73ba44b commit af5ab32

File tree

8 files changed

+75
-40
lines changed

8 files changed

+75
-40
lines changed

Pipeline/Build.ApiChecks.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,16 @@ partial class Build
1313
.DependsOn(Compile)
1414
.Executes(() =>
1515
{
16-
Project[] projects =
17-
[
18-
Solution.Tests.Api.Testably_Abstractions_Api_Tests,
19-
Solution.Tests.Api.Testably_Abstractions_Core_Api_Tests,
20-
];
16+
Project[] projects = BuildScope switch
17+
{
18+
BuildScope.CoreOnly => [Solution.Tests.Api.Testably_Abstractions_Core_Api_Tests,],
19+
BuildScope.MainOnly => [Solution.Tests.Api.Testably_Abstractions_Api_Tests,],
20+
_ =>
21+
[
22+
Solution.Tests.Api.Testably_Abstractions_Api_Tests,
23+
Solution.Tests.Api.Testably_Abstractions_Core_Api_Tests,
24+
],
25+
};
2126

2227
DotNetTest(s => s
2328
.SetConfiguration(Configuration)

Pipeline/Build.CodeAnalysis.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ partial class Build
1313
.Unlisted()
1414
.Before(Compile)
1515
.Before(CodeCoverage)
16+
.OnlyWhenDynamic(() => BuildScope == BuildScope.Default)
1617
.Executes(() =>
1718
{
1819
SonarScannerTasks.SonarScannerBegin(s => s
@@ -29,7 +30,7 @@ partial class Build
2930
.Unlisted()
3031
.DependsOn(Compile)
3132
.DependsOn(CodeCoverage)
32-
.OnlyWhenDynamic(() => IsServerBuild)
33+
.OnlyWhenDynamic(() => IsServerBuild && BuildScope == BuildScope.Default)
3334
.Executes(() =>
3435
{
3536
SonarScannerTasks.SonarScannerEnd(s => s

Pipeline/Build.CodeCoverage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ partial class Build
1111
{
1212
Target CodeCoverage => _ => _
1313
.DependsOn(UnitTests)
14+
.OnlyWhenDynamic(() => BuildScope != BuildScope.CoreOnly)
1415
.Executes(() =>
1516
{
1617
ReportGenerator(s => s

Pipeline/Build.MutationTests.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ partial class Build
2727
.After(MutationTestsLinux)
2828
.After(MutationTestsWindows)
2929
.OnlyWhenDynamic(() => GitHubActions.IsPullRequest)
30+
.OnlyWhenDynamic(() => BuildScope == BuildScope.Default)
3031
.Executes(async () =>
3132
{
3233
int? prId = GitHubActions.PullRequestNumber;
@@ -83,6 +84,7 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions",
8384
});
8485

8586
Target MutationTestPreparation => _ => _
87+
.OnlyWhenDynamic(() => BuildScope == BuildScope.Default)
8688
.Executes(() =>
8789
{
8890
StrykerToolPath.CreateOrCleanDirectory();
@@ -97,11 +99,13 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions",
9799
Target MutationTests => _ => _
98100
.DependsOn(MutationTestsWindows)
99101
.DependsOn(MutationTestsLinux)
100-
.DependsOn(MutationComment);
102+
.DependsOn(MutationComment)
103+
.OnlyWhenDynamic(() => BuildScope == BuildScope.Default);
101104

102105
Target MutationTestsLinux => _ => _
103106
.DependsOn(Compile)
104107
.DependsOn(MutationTestPreparation)
108+
.OnlyWhenDynamic(() => BuildScope == BuildScope.Default)
105109
.Executes(() =>
106110
{
107111
AbsolutePath configFile = StrykerToolPath / "Stryker.Config.json";
@@ -210,6 +214,7 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions",
210214
Target MutationTestsWindows => _ => _
211215
.DependsOn(Compile)
212216
.DependsOn(MutationTestPreparation)
217+
.OnlyWhenDynamic(() => BuildScope == BuildScope.Default)
213218
.Executes(() =>
214219
{
215220
AbsolutePath configFile = StrykerToolPath / "Stryker.Config.json";

Pipeline/Build.Pack.cs

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,47 +24,53 @@ partial class Build
2424
packagesDirectory.CreateOrCleanDirectory();
2525

2626
List<string> packages = new();
27-
Directory.CreateDirectory(packagesDirectory / "Main");
28-
foreach (Project mainProject in MainProjects)
27+
if (BuildScope != BuildScope.CoreOnly)
2928
{
30-
foreach (string package in
31-
Directory.EnumerateFiles(mainProject.Directory / "bin", "*.nupkg",
32-
SearchOption.AllDirectories))
29+
Directory.CreateDirectory(packagesDirectory / "Main");
30+
foreach (Project mainProject in MainProjects)
3331
{
34-
File.Move(package, packagesDirectory / "Main" / Path.GetFileName(package));
35-
Debug("Found nuget package: {PackagePath}", package);
36-
packages.Add(Path.GetFileName(package));
37-
}
32+
foreach (string package in
33+
Directory.EnumerateFiles(mainProject.Directory / "bin", "*.nupkg",
34+
SearchOption.AllDirectories))
35+
{
36+
File.Move(package, packagesDirectory / "Main" / Path.GetFileName(package));
37+
Debug("Found nuget package: {PackagePath}", package);
38+
packages.Add(Path.GetFileName(package));
39+
}
3840

39-
foreach (string symbolPackage in
40-
Directory.EnumerateFiles(mainProject.Directory / "bin", "*.snupkg",
41-
SearchOption.AllDirectories))
42-
{
43-
File.Move(symbolPackage,
44-
packagesDirectory / "Main" / Path.GetFileName(symbolPackage));
45-
Debug("Found symbol package: {PackagePath}", symbolPackage);
41+
foreach (string symbolPackage in
42+
Directory.EnumerateFiles(mainProject.Directory / "bin", "*.snupkg",
43+
SearchOption.AllDirectories))
44+
{
45+
File.Move(symbolPackage,
46+
packagesDirectory / "Main" / Path.GetFileName(symbolPackage));
47+
Debug("Found symbol package: {PackagePath}", symbolPackage);
48+
}
4649
}
4750
}
4851

49-
Directory.CreateDirectory(packagesDirectory / "Core");
50-
foreach (Project coreProject in CoreProjects)
52+
if (BuildScope != BuildScope.MainOnly)
5153
{
52-
foreach (string package in
53-
Directory.EnumerateFiles(coreProject.Directory / "bin", "*.nupkg",
54-
SearchOption.AllDirectories))
54+
Directory.CreateDirectory(packagesDirectory / "Core");
55+
foreach (Project coreProject in CoreProjects)
5556
{
56-
File.Move(package, packagesDirectory / "Core" / Path.GetFileName(package));
57-
Debug("Found nuget package: {PackagePath}", package);
58-
packages.Add(Path.GetFileName(package));
59-
}
57+
foreach (string package in
58+
Directory.EnumerateFiles(coreProject.Directory / "bin", "*.nupkg",
59+
SearchOption.AllDirectories))
60+
{
61+
File.Move(package, packagesDirectory / "Core" / Path.GetFileName(package));
62+
Debug("Found nuget package: {PackagePath}", package);
63+
packages.Add(Path.GetFileName(package));
64+
}
6065

61-
foreach (string symbolPackage in
62-
Directory.EnumerateFiles(coreProject.Directory / "bin", "*.snupkg",
63-
SearchOption.AllDirectories))
64-
{
65-
File.Move(symbolPackage,
66-
packagesDirectory / "Core" / Path.GetFileName(symbolPackage));
67-
Debug("Found symbol package: {PackagePath}", symbolPackage);
66+
foreach (string symbolPackage in
67+
Directory.EnumerateFiles(coreProject.Directory / "bin", "*.snupkg",
68+
SearchOption.AllDirectories))
69+
{
70+
File.Move(symbolPackage,
71+
packagesDirectory / "Core" / Path.GetFileName(symbolPackage));
72+
Debug("Found symbol package: {PackagePath}", symbolPackage);
73+
}
6874
}
6975
}
7076

Pipeline/Build.UnitTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ partial class Build
1818
Target DotNetUnitTests => _ => _
1919
.Unlisted()
2020
.DependsOn(Compile)
21+
.OnlyWhenDynamic(() => BuildScope != BuildScope.CoreOnly)
2122
.Executes(() =>
2223
{
2324
string[] excludedFrameworks =

Pipeline/Build.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ namespace Build;
1414
)]
1515
partial class Build : NukeBuild
1616
{
17+
/// <summary>
18+
/// Set this flag temporarily when you introduce breaking changes in the core library.
19+
/// This will change the build pipeline to only build and publish the aweXpect.Core or aweXpect package.
20+
/// <para />
21+
/// Afterward, you can update the package reference in `Directory.Packages.props` and reset this flag.
22+
/// </summary>
23+
readonly BuildScope BuildScope = BuildScope.CoreOnly;
24+
1725
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
1826
readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
1927

@@ -29,6 +37,6 @@ partial class Build : NukeBuild
2937

3038
public static int Main() => Execute<Build>([
3139
x => x.ApiChecks,
32-
x => x.UnitTests,
40+
x => x.Pack,
3341
]);
3442
}

Pipeline/BuildScope.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace Build;
2+
3+
enum BuildScope
4+
{
5+
CoreOnly,
6+
MainOnly,
7+
Default,
8+
}

0 commit comments

Comments
 (0)