forked from GitTools/GitVersion
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCommitOnNonTrunkBranchedBase.cs
More file actions
37 lines (31 loc) · 1.62 KB
/
Copy pathCommitOnNonTrunkBranchedBase.cs
File metadata and controls
37 lines (31 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using GitVersion.Configuration;
using GitVersion.Extensions;
namespace GitVersion.VersionCalculation.Mainline.NonTrunk;
internal abstract class CommitOnNonTrunkBranchedBase : IIncrementer
{
public virtual bool MatchPrecondition(MainlineIteration iteration, MainlineCommit commit, MainlineContext context)
=> !commit.GetEffectiveConfiguration(context.Configuration).IsMainBranch
&& commit.BranchName != iteration.BranchName
&& commit.Successor is null;
public virtual IEnumerable<IBaseVersionIncrement> GetIncrements(
MainlineIteration iteration, MainlineCommit commit, MainlineContext context)
{
context.BaseVersionSource = commit.Value;
var incrementForcedByBranch = iteration.Configuration.Increment == IncrementStrategy.Inherit
? commit.GetIncrementForcedByBranch(context.Configuration)
: iteration.Configuration.Increment.ToVersionField();
context.Increment = context.Increment.Consolidate(incrementForcedByBranch);
var iterationEffectiveConfiguration = iteration.GetEffectiveConfiguration(context.Configuration);
context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null, context.Environment) ?? context.Label;
context.ForceIncrement = true;
yield return new BaseVersionOperator
{
Source = GetType().Name,
BaseVersionSource = null,
Increment = VersionField.None,
ForceIncrement = false,
Label = context.Label,
AlternativeSemanticVersion = context.AlternativeSemanticVersions.Max()
};
}
}