Skip to content

Commit cbd7cb2

Browse files
committed
TeamCity generation: added external build types.
1 parent 8277d8b commit cbd7cb2

File tree

8 files changed

+310
-188
lines changed

8 files changed

+310
-188
lines changed

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

Lines changed: 293 additions & 180 deletions
Large diffs are not rendered by default.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ public DockerSpec? DockerSpec
250250
/// MSBuild cannot be used.
251251
/// </summary>
252252
public Version? MSBuildVersion { get; init; }
253+
254+
public string[] ExternalTeamCityBuildTypes { get; init; }
253255

254256
public bool TryGetDependency( string name, [NotNullWhen( true )] out ParametrizedDependency? dependency )
255257
{

src/PostSharp.Engineering.BuildTools/ContinuousIntegration/Model/BuildSteps/TeamCityBuildStep.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace PostSharp.Engineering.BuildTools.ContinuousIntegration.Model.BuildSteps;
88

9-
public abstract class TeamCityBuildStep
9+
internal abstract class TeamCityBuildStep
1010
{
1111
private readonly List<TeamCityBuildConfigurationParameter> _parameters = new();
1212

src/PostSharp.Engineering.BuildTools/ContinuousIntegration/Model/BuildSteps/TeamCityEngineeringBuildBuildStep.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace PostSharp.Engineering.BuildTools.ContinuousIntegration.Model.BuildSteps;
88

9-
public class TeamCityEngineeringBuildBuildStep : TeamCityEngineeringCommandBuildStep
9+
internal class TeamCityEngineeringBuildBuildStep : TeamCityEngineeringCommandBuildStep
1010
{
1111
public TeamCityEngineeringBuildBuildStep( BuildConfiguration configuration, bool testOnBuild, DockerSpec? dockerSpec, TimeSpan? timeout ) : base(
1212
"Build",

src/PostSharp.Engineering.BuildTools/ContinuousIntegration/Model/BuildSteps/TeamCityEngineeringCommandBuildStep.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace PostSharp.Engineering.BuildTools.ContinuousIntegration.Model.BuildSteps;
1111

12-
public class TeamCityEngineeringCommandBuildStep : TeamCityPowerShellBuildStep
12+
internal class TeamCityEngineeringCommandBuildStep : TeamCityPowerShellBuildStep
1313
{
1414
private readonly DockerSpec? _dockerSpec;
1515

src/PostSharp.Engineering.BuildTools/ContinuousIntegration/Model/BuildSteps/TeamCityEngineeringPublishBuildStep.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace PostSharp.Engineering.BuildTools.ContinuousIntegration.Model.BuildSteps;
88

9-
public class TeamCityEngineeringPublishBuildStep : TeamCityEngineeringCommandBuildStep
9+
internal class TeamCityEngineeringPublishBuildStep : TeamCityEngineeringCommandBuildStep
1010
{
1111
public TeamCityEngineeringPublishBuildStep( BuildConfiguration configuration, DockerSpec? dockerSpec, TimeSpan? timeSpan ) : base(
1212
"Publish",

src/PostSharp.Engineering.BuildTools/ContinuousIntegration/Model/BuildSteps/TeamCityPowerShellBuildStep.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace PostSharp.Engineering.BuildTools.ContinuousIntegration.Model.BuildSteps;
66

7-
public class TeamCityPowerShellBuildStep : TeamCityBuildStep
7+
internal class TeamCityPowerShellBuildStep : TeamCityBuildStep
88
{
99
public string Id { get; }
1010

src/PostSharp.Engineering.BuildTools/ContinuousIntegration/Model/TeamCityProject.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,18 @@ internal class TeamCityProject
1010
private readonly string? _objectName;
1111
private readonly string? _projectName;
1212
private readonly TeamCityBuildConfiguration[] _configurations;
13+
private readonly string[] _additionalBuildTypes;
1314
private readonly TeamCityProject[] _subProjects;
1415

15-
public TeamCityProject( TeamCityBuildConfiguration[] configurations, TeamCityProject[]? subProjects = null )
16+
public TeamCityProject( TeamCityBuildConfiguration[] configurations, string[] additionalBuildTypes, TeamCityProject[]? subProjects = null )
1617
{
1718
this._configurations = configurations;
19+
this._additionalBuildTypes = additionalBuildTypes;
1820
this._subProjects = subProjects ?? [];
1921
}
2022

21-
public TeamCityProject( string objectName, string projectName, TeamCityBuildConfiguration[] configurations, TeamCityProject[]? subProjects = null )
22-
: this( configurations, subProjects )
23+
public TeamCityProject( string objectName, string projectName, TeamCityBuildConfiguration[] configurations, string[] additionalBuildTypes, TeamCityProject[]? subProjects = null )
24+
: this( configurations, additionalBuildTypes, subProjects )
2325
{
2426
this._objectName = objectName;
2527
this._projectName = projectName;
@@ -50,6 +52,11 @@ void WriteProjectBody( TeamCityProject project )
5052
{
5153
writer.WriteLine( $" buildType({configuration.ObjectName})" );
5254
}
55+
56+
foreach ( var configuration in project._additionalBuildTypes )
57+
{
58+
writer.WriteLine( $" buildType({configuration})" );
59+
}
5360

5461
writer.WriteLine();
5562
var configurationsOrder = string.Join( ',', project._configurations.Select( c => c.ObjectName ) );

0 commit comments

Comments
 (0)