Skip to content

Commit ed07c2c

Browse files
committed
Configuration-specific artifacts.
1 parent d0c6d65 commit ed07c2c

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

src/PostSharp.Engineering.BuildTools/Build/BuildCommand.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,11 @@ public static bool Execute( BuildContext context, BuildSettings settings )
179179
}
180180

181181
// Check that the build produced the expected artifacts.
182-
var allFilesPattern = product.PublicArtifacts.Append( product.PrivateArtifacts );
182+
var allPublicArtifacts = product.PublicArtifacts.Append( buildConfigurationInfo.PublicArtifacts );
183+
var allPrivateArtifacts = product.PrivateArtifacts.Append( buildConfigurationInfo.PrivateArtifacts );
184+
var allArtifacts = allPrivateArtifacts.Append( allPublicArtifacts );
183185

184-
if ( !allFilesPattern.Verify( context, privateArtifactsDirectory, buildInfo ) )
186+
if ( !allArtifacts.Verify( context, privateArtifactsDirectory, buildInfo ) )
185187
{
186188
return false;
187189
}
@@ -223,7 +225,7 @@ void CreateEmptyPublicDirectory()
223225
File.WriteAllText( emptyFile, "This file is intentionally empty." );
224226
}
225227

226-
if ( product.PublicArtifacts.IsEmpty )
228+
if ( allPublicArtifacts.IsEmpty )
227229
{
228230
context.Console.WriteMessage( "Do not prepare public artifacts because there is none." );
229231
CreateEmptyPublicDirectory();
@@ -239,7 +241,7 @@ void CreateEmptyPublicDirectory()
239241
context.Console.WriteHeading( "Copying public artifacts" );
240242
var filePatternMatches = new List<FilePatternMatch>();
241243

242-
product.PublicArtifacts.TryGetFiles( privateArtifactsDirectory, buildInfo, filePatternMatches );
244+
allPublicArtifacts.TryGetFiles( privateArtifactsDirectory, buildInfo, filePatternMatches );
243245
IEnumerable<string> files = filePatternMatches.Select( m => m.Path ).ToArray();
244246

245247
// Automatically include respective symbol NuGet packages.

src/PostSharp.Engineering.BuildTools/Build/BuildConfigurationInfo.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Copyright (c) SharpCrafters s.r.o. See the LICENSE.md file in the root directory of this repository root for details.
22

3+
using PostSharp.Engineering.BuildTools.Build.Model;
34
using PostSharp.Engineering.BuildTools.Build.Publishing;
45
using PostSharp.Engineering.BuildTools.Build.Swapping;
56
using PostSharp.Engineering.BuildTools.ContinuousIntegration.Triggers;
@@ -19,10 +20,10 @@ namespace PostSharp.Engineering.BuildTools.Build;
1920
/// <param name="TeamCityDeploymentName">Name of the TeamCity configuration implementing the <b>Deploy</b> action.</param>
2021
/// <param name="TeamCitySwapName">Name of the TeamCity configuration implementing the <b>Swap</b> action.</param>
2122
public record BuildConfigurationInfo(
22-
23-
// ReSharper disable once InconsistentNaming
2423
bool RequiresSigning = false,
2524
IBuildTrigger[]? BuildTriggers = null,
25+
Pattern? PublicArtifacts = null,
26+
Pattern? PrivateArtifacts = null,
2627

2728
// Publishers for public artifacts.
2829
Publisher[]? PublicPublishers = null,

src/PostSharp.Engineering.BuildTools/Build/Model/Pattern.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private Pattern( ImmutableArray<(ParametricString Pattern, bool IsExclude)> item
4444
/// <summary>
4545
/// Appends a pattern after the current pattern and returns the result.
4646
/// </summary>
47-
public Pattern Append( Pattern pattern ) => new( this.Items.AddRange( pattern.Items ) );
47+
public Pattern Append( Pattern? pattern ) => pattern == null ? this : new( this.Items.AddRange( pattern.Items ) );
4848

4949
/// <summary>
5050
/// Creates a new additive pattern.

src/PostSharp.Engineering.BuildTools/Build/Model/Product.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,16 @@ public string GetPrivateArtifactsRelativeDirectory( BuildConfiguration configura
9494

9595
public Solution[] Solutions { get; init; } = [];
9696

97+
/// <summary>
98+
/// Gets the pattern selecting private artifacts for all configuration.
99+
/// </summary>
100+
/// <seealso cref="BuildConfigurationInfo.PrivateArtifacts"/>
97101
public Pattern PrivateArtifacts { get; init; } = Pattern.Empty;
98102

103+
/// <summary>
104+
/// Gets the pattern selecting public artifacts for all configuration.
105+
/// </summary>
106+
/// <seealso cref="BuildConfigurationInfo.PublicArtifacts"/>
99107
public Pattern PublicArtifacts { get; init; } = Pattern.Empty;
100108

101109
public bool KeepEditorConfig { get; init; }

0 commit comments

Comments
 (0)