Skip to content

Commit e55b3fb

Browse files
committed
Added back ability for PrivateArtifactDirectory to contain a parameter.
1 parent 4693980 commit e55b3fb

19 files changed

+63
-40
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public static bool Execute( BuildContext context, BuildSettings settings )
127127
// We have to read the version from the file we have generated - using MSBuild, because it contains properties.
128128
var buildInfo = BuildArguments.Read( context, settings.BuildConfiguration );
129129

130-
var privateArtifactsDirectory = product.GetPrivateArtifactsDirectory( context );
130+
var privateArtifactsDirectory = product.GetPrivateArtifactsDirectory( settings.BuildConfiguration );
131131

132132
// Build solutions.
133133
IEnumerable<Solution> solutionsToBuild;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ public static bool IsGuestDevice
6060
/// Gets the full path of the current manifest file (i.e. the file called <c>My.Product.version.props</c>)
6161
/// for a given <see cref="BuildConfiguration"/>.
6262
/// </summary>
63-
public string ManifestFilePath
63+
public string GetManifestFilePath( BuildConfiguration configuration )
6464
=> Path.Combine(
6565
this.RepoDirectory,
66-
this.Product.PrivateArtifactsDirectory,
66+
this.Product.GetPrivateArtifactsDirectory( configuration ),
6767
$"{this.Product.ProductName}.version.props" );
6868

6969
private BuildContext(

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,10 @@ void CleanNugetCache()
116116
DeleteDirectory( Path.Combine( context.RepoDirectory, directory ) );
117117
}
118118

119-
var stringParameters = new BuildArguments( null, settings.BuildConfiguration, product, null );
120-
121119
DeleteDirectory(
122120
Path.Combine(
123121
context.RepoDirectory,
124-
product.PrivateArtifactsDirectory ) );
122+
product.GetPrivateArtifactsDirectory( settings.BuildConfiguration ) ) );
125123

126124
DeleteDirectory(
127125
Path.Combine(

src/PostSharp.Engineering.BuildTools/Build/Files/ArtifactManifestFile.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ void AppendToArcadeSuffix( string s )
9999
<{product.ProductNameWithoutDot}BuildConfiguration>{configuration}</{product.ProductNameWithoutDot}BuildConfiguration>
100100
<{product.ProductNameWithoutDot}Dependencies>{string.Join( ";", product.ParametrizedDependencies.Select( x => x.Name ) )}</{product.ProductNameWithoutDot}Dependencies>
101101
<{product.ProductNameWithoutDot}PublicArtifactsDirectory>{product.PublicArtifactsDirectory}</{product.ProductNameWithoutDot}PublicArtifactsDirectory>
102-
<{product.ProductNameWithoutDot}PrivateArtifactsDirectory>{product.PrivateArtifactsDirectory}</{product.ProductNameWithoutDot}PrivateArtifactsDirectory>
102+
<{product.ProductNameWithoutDot}PrivateArtifactsDirectory>{product.GetPrivateArtifactsDirectory( configuration )}</{product.ProductNameWithoutDot}PrivateArtifactsDirectory>
103103
<{product.ProductNameWithoutDot}EngineeringVersion>{VersionHelper.EngineeringVersion}</{product.ProductNameWithoutDot}EngineeringVersion>
104104
<{product.ProductNameWithoutDot}VersionFilePath>{product.VersionsFilePath}</{product.ProductNameWithoutDot}VersionFilePath>
105105
<{product.ProductNameWithoutDot}BuildNumber>{buildSettings.BuildNumber}</{product.ProductNameWithoutDot}BuildNumber>
@@ -206,7 +206,7 @@ internal static string GetPath( BuildContext context, BuildConfiguration configu
206206
{
207207
var product = context.Product;
208208

209-
var privateArtifactsRelativeDir = product.PrivateArtifactsDirectory;
209+
var privateArtifactsRelativeDir = product.GetPrivateArtifactsDirectory( configuration );
210210

211211
var artifactsDir = Path.Combine( context.RepoDirectory, privateArtifactsRelativeDir );
212212

@@ -225,7 +225,7 @@ public static bool TryRead(
225225
[NotNullWhen( true )] out ArtifactManifestVersionInfo? artifactManifestVersionInfo )
226226
{
227227
var product = context.Product;
228-
var artifactVersionFile = context.ManifestFilePath;
228+
var artifactVersionFile = context.GetManifestFilePath( configuration );
229229

230230
var document = XDocument.Load( artifactVersionFile );
231231
var project = document.Root;
@@ -264,7 +264,7 @@ public static bool TryRead(
264264
public static BuildArguments CreateParametricStringArguments( BuildContext context, BuildConfiguration buildConfiguration )
265265
{
266266
var product = context.Product;
267-
var versionFilePath = context.ManifestFilePath;
267+
var versionFilePath = context.GetManifestFilePath( buildConfiguration );
268268

269269
if ( !File.Exists( versionFilePath ) )
270270
{

src/PostSharp.Engineering.BuildTools/Build/Files/ImportFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static void Write( BuildContext context, BuildConfiguration configuration
2727
var product = context.Product;
2828

2929
// Write a link to this file in the root file of the repo. This file is the interface of the repo, which can be imported by other repos.
30-
var manifestFilePath = context.ManifestFilePath;
30+
var manifestFilePath = context.GetManifestFilePath( configuration );
3131
var importFilePath = Path.Combine( context.RepoDirectory, product.ProductName + ".Import.props" );
3232

3333
// We're generating a relative path so that the path can be resolved even when the filesystem is mounted

src/PostSharp.Engineering.BuildTools/Build/Files/NuGetConfigFile.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ internal static bool TryWrite( BuildContext context, DependenciesConfigurationFi
8181
// Add the current artifact directory.
8282
var artifactDirectory = Path.Combine(
8383
context.RepoDirectory,
84-
product.PrivateArtifactsDirectory );
84+
product.GetPrivateArtifactsDirectory( configuration ) );
8585

8686
AddDirectory( product.ProductName, artifactDirectory, product.DependencyDefinition.PackagePatterns );
8787

@@ -119,7 +119,7 @@ internal static bool TryWrite( BuildContext context, DependenciesConfigurationFi
119119

120120
dependencyDirectory = Path.Combine(
121121
dependencyDirectory,
122-
dependencyDefinition.PrivateArtifactsDirectory );
122+
dependencyDefinition.GetPrivateArtifactsDirectory( configuration ) );
123123
}
124124

125125
if ( !AddDirectory( dependencySource.Key, dependencyDirectory, dependencyDefinition.PackagePatterns ) )

src/PostSharp.Engineering.BuildTools/Build/Files/TeamCitySettingsFile.cs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private static bool TryWriteStandalone( BuildContext context, CommonCommandSetti
5353
context.Product.PublicArtifactsDirectory.Replace( "\\", "/", StringComparison.Ordinal );
5454

5555
var privateArtifactsDirectory =
56-
context.Product.PrivateArtifactsDirectory.Replace( "\\", "/", StringComparison.Ordinal );
56+
context.Product.GetPrivateArtifactsDirectory( configuration ).Replace( "\\", "/", StringComparison.Ordinal );
5757

5858
var testResultsDirectory =
5959
context.Product.TestResultsDirectory.Replace( "\\", "/", StringComparison.Ordinal );
@@ -98,7 +98,7 @@ private static bool TryWriteStandalone( BuildContext context, CommonCommandSetti
9898
.Select( d => new TeamCitySnapshotDependency(
9999
d.Definition.CiConfiguration.BuildTypes[d.Configuration],
100100
true,
101-
$"+:{d.Definition.PrivateArtifactsDirectory.Replace( Path.DirectorySeparatorChar, '/' )}/**/*=>dependencies/{d.Name}" ) )
101+
$"+:{d.Definition.GetPrivateArtifactsDirectory( d.Configuration ).Replace( Path.DirectorySeparatorChar, '/' )}/**/*=>dependencies/{d.Name}" ) )
102102
.ToList();
103103

104104
var sourceSnapshotDependencies = product.SourceDependencies.Where( d => d.GenerateSnapshotDependency )
@@ -468,9 +468,7 @@ bool TryPopulateBuildConfigurations(
468468
if ( dependencyDefinition.ProductFamily == product.ProductFamily
469469
&& !projectsWithNoNuGetArtifacts.Any( p => dependencyDefinition.Name.Contains( p, StringComparison.Ordinal ) ) )
470470
{
471-
var dependencyMsBuildConfiguration = dependencyDefinition.MSBuildConfiguration[configuration];
472-
473-
var dependencyPrivateArtifactsDirectory = dependencyDefinition.PrivateArtifactsDirectory
471+
var dependencyPrivateArtifactsDirectory = dependencyDefinition.GetPrivateArtifactsDirectory( configuration )
474472
.Replace( Path.DirectorySeparatorChar, '/' );
475473

476474
var dependencyPublicArtifactsDirectory = dependencyDefinition.PublicArtifactsDirectory
@@ -520,10 +518,8 @@ bool TryPopulateBuildConfigurations(
520518
.Select( c => c! ) );
521519
}
522520

523-
var buildInfo = new BuildArguments( null, configuration, product, null );
524-
525521
var privateArtifactsDirectory =
526-
product.PrivateArtifactsDirectory.Replace( "\\", "/", StringComparison.Ordinal );
522+
product.GetPrivateArtifactsDirectory( configuration ).Replace( "\\", "/", StringComparison.Ordinal );
527523

528524
var publicArtifactsDirectory =
529525
product.PublicArtifactsDirectory.Replace( "\\", "/", StringComparison.Ordinal );
@@ -845,7 +841,7 @@ bool TryAddPreOrPostDeploymentBuildConfiguration(
845841
{
846842
var dependencyName = dependencyDefinition.Name;
847843

848-
var dependencyPrivateArtifactsDirectory = dependencyDefinition.PrivateArtifactsDirectory
844+
var dependencyPrivateArtifactsDirectory = dependencyDefinition.GetPrivateArtifactsDirectory( BuildConfiguration.Public )
849845
.Replace( Path.DirectorySeparatorChar, '/' );
850846

851847
var artifactRules =

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ private Pattern( ImmutableArray<(ParametricString Pattern, bool IsExclude)> item
6060
public bool Verify( BuildContext context, string directory, BuildArguments buildArguments )
6161
{
6262
var success = true;
63+
var absoluteDirectory = Path.Combine( context.RepoDirectory, directory );
6364

6465
foreach ( var pattern in this.Items )
6566
{
@@ -73,11 +74,11 @@ public bool Verify( BuildContext context, string directory, BuildArguments build
7374
matcher.AddInclude( expandedPattern );
7475

7576
var matchingResult =
76-
matcher.Execute( new DirectoryInfoWrapper( new DirectoryInfo( directory ) ) );
77+
matcher.Execute( new DirectoryInfoWrapper( new DirectoryInfo( absoluteDirectory ) ) );
7778

7879
if ( !matchingResult.HasMatches )
7980
{
80-
context.Console.WriteError( $"The pattern '{directory}\\{expandedPattern}' does not match any file." );
81+
context.Console.WriteError( $"The pattern '{absoluteDirectory}\\{expandedPattern}' does not match any file." );
8182
success = false;
8283
}
8384
}

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,12 @@ public string BumpInfoFilePath
7979

8080
public string ProductNameWithoutDot => this.ProductName.Replace( ".", "", StringComparison.OrdinalIgnoreCase );
8181

82+
[Obsolete( "Use GetPrivateArtifactsDirectory." )]
8283
public string PrivateArtifactsDirectory => this.DependencyDefinition.PrivateArtifactsDirectory;
8384

85+
public string GetPrivateArtifactsDirectory( BuildConfiguration configuration )
86+
=> this.DependencyDefinition.GetPrivateArtifactsDirectory( configuration );
87+
8488
public string PublicArtifactsDirectory => this.DependencyDefinition.PublicArtifactsDirectory;
8589

8690
public string TestResultsDirectory { get; init; } = Path.Combine( "artifacts", "testResults" );
@@ -294,10 +298,10 @@ public bool TryGetDependencyDefinition( string name, [NotNullWhen( true )] out D
294298

295299
public bool IsBundle { get; init; }
296300

297-
internal string GetPrivateArtifactsDirectory( BuildContext context )
301+
internal string GetPrivateArtifactsDirectory( BuildContext context, BuildConfiguration configuration )
298302
=> Path.Combine(
299303
context.RepoDirectory,
300-
this.PrivateArtifactsDirectory );
304+
this.GetPrivateArtifactsDirectory( configuration ) );
301305

302306
internal string GetPublicArtifactsDirectory( BuildContext context )
303307
=> Path.Combine(
@@ -335,10 +339,10 @@ internal void OnPrepareCompleted( PrepareCompletedEventArgs args )
335339
this.PrepareCompleted?.Invoke( args );
336340
}
337341

338-
internal (string Private, string Public) GetArtifactsDirectories( BuildContext context )
342+
internal (string Private, string Public) GetArtifactsDirectories( BuildContext context, BuildConfiguration configuration )
339343
{
340344
return (
341-
Path.Combine( context.RepoDirectory, this.PrivateArtifactsDirectory ),
345+
Path.Combine( context.RepoDirectory, this.GetPrivateArtifactsDirectory( configuration ) ),
342346
Path.Combine( context.RepoDirectory, this.PublicArtifactsDirectory )
343347
);
344348
}

src/PostSharp.Engineering.BuildTools/Build/Publishing/PublishCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public static bool Execute( BuildContext context, PublishSettings settings )
119119

120120
var configuration = settings.BuildConfiguration;
121121
var buildArguments = BuildArguments.Read( context, configuration );
122-
var directories = product.GetArtifactsDirectories( context );
122+
var directories = product.GetArtifactsDirectories( context, configuration );
123123
var configurationInfo = product.Configurations.GetValue( configuration );
124124
var hasTarget = false;
125125

0 commit comments

Comments
 (0)