5
5
6
6
namespace GitVersion . Core . Tests . IntegrationTests ;
7
7
8
- public class MainlineDevelopmentMode : TestBase
8
+ public class TrunkBasedDevelopmentScenarios : TestBase
9
9
{
10
10
private static GitFlowConfigurationBuilder GetConfigurationBuilder ( ) => GitFlowConfigurationBuilder . New
11
11
. WithVersioningMode ( VersioningMode . TrunkBased )
12
12
. WithBranch ( "main" , builder => builder
13
+ . WithIsMainline ( true ) . WithIncrement ( IncrementStrategy . Patch )
13
14
. WithVersioningMode ( VersioningMode . ContinuousDeployment )
14
15
. WithSourceBranches ( )
15
16
)
16
17
. WithBranch ( "develop" , builder => builder
18
+ . WithIsMainline ( false ) . WithIncrement ( IncrementStrategy . Minor )
17
19
. WithVersioningMode ( VersioningMode . ContinuousDelivery )
18
20
. WithSourceBranches ( "main" )
19
21
)
20
- . WithBranch ( "feature" , builder => builder . WithIsMainline ( false )
21
- . WithIncrement ( IncrementStrategy . Inherit ) . WithVersioningMode ( VersioningMode . ContinuousDelivery )
22
+ . WithBranch ( "feature" , builder => builder
23
+ . WithIsMainline ( false ) . WithIncrement ( IncrementStrategy . Minor )
24
+ . WithVersioningMode ( VersioningMode . ContinuousDelivery )
25
+ . WithSourceBranches ( "main" )
26
+ )
27
+ . WithBranch ( "hotfix" , builder => builder
28
+ . WithIsMainline ( false ) . WithIncrement ( IncrementStrategy . Patch )
29
+ . WithVersioningMode ( VersioningMode . ContinuousDelivery )
30
+ . WithRegularExpression ( "^hotfix[/-](?<BranchName>.+)" ) . WithLabel ( "{BranchName}" )
22
31
. WithSourceBranches ( "main" )
23
32
)
24
- . WithBranch ( "support" , builder => builder . WithVersioningMode ( VersioningMode . ContinuousDelivery ) )
25
33
. WithBranch ( "pull-request" , builder => builder
26
- . WithIsMainline ( false ) . WithVersioningMode ( VersioningMode . ContinuousDelivery )
27
- . WithSourceBranches ( "main" ) . WithIncrement ( IncrementStrategy . None )
34
+ . WithIsMainline ( false ) . WithIncrement ( IncrementStrategy . Inherit )
35
+ . WithVersioningMode ( VersioningMode . ContinuousDelivery )
36
+ . WithSourceBranches ( "main" )
28
37
) ;
29
38
30
39
[ Test ]
@@ -51,7 +60,10 @@ public void VerifyNonMainMainlineVersionIdenticalAsMain()
51
60
[ Test ]
52
61
public void MergedFeatureBranchesToMainImpliesRelease ( )
53
62
{
54
- var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
63
+ var configuration = GetConfigurationBuilder ( )
64
+ . WithBranch ( "feature" , builder => builder
65
+ . WithIncrement ( IncrementStrategy . Patch )
66
+ ) . Build ( ) ;
55
67
56
68
using var fixture = new EmptyRepositoryFixture ( ) ;
57
69
fixture . Repository . MakeACommit ( "1" ) ;
@@ -117,21 +129,50 @@ public void MergedFeatureBranchesToMainImpliesRelease()
117
129
}
118
130
119
131
[ Test ]
120
- public void VerifyPullRequestsActLikeContinuousDelivery ( )
132
+ public void VerifyPullRequestsActLikeContinuousDeliveryOnFeatureBranch ( )
121
133
{
122
134
var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
123
135
124
- using var fixture = new EmptyRepositoryFixture ( ) ;
125
- fixture . Repository . MakeACommit ( "1" ) ;
136
+ using EmptyRepositoryFixture fixture = new ( "main" ) ;
137
+
138
+ fixture . MakeACommit ( "1" ) ;
139
+
140
+ fixture . AssertFullSemver ( "0.0.1" , configuration ) ;
141
+
126
142
fixture . MakeATaggedCommit ( "1.0.0" ) ;
127
- fixture . MakeACommit ( ) ;
143
+ fixture . MakeACommit ( "2" ) ;
144
+
128
145
fixture . AssertFullSemver ( "1.0.1" , configuration ) ;
129
146
130
147
fixture . BranchTo ( "feature/foo" , "foo" ) ;
131
- fixture . AssertFullSemver ( "1.0.2 -foo.0" , configuration ) ;
132
- fixture . MakeACommit ( ) ;
133
- fixture . MakeACommit ( ) ;
148
+ fixture . AssertFullSemver ( "1.1.0 -foo.0" , configuration ) ;
149
+ fixture . MakeACommit ( "3" ) ;
150
+ fixture . MakeACommit ( "4" ) ;
134
151
fixture . Repository . CreatePullRequestRef ( "feature/foo" , MainBranch , prNumber : 8 , normalise : true ) ;
152
+ fixture . AssertFullSemver ( "1.1.0-PullRequest8.3" , configuration ) ;
153
+ }
154
+
155
+ [ Test ]
156
+ public void VerifyPullRequestsActLikeContinuousDeliveryOnHotfixBranch ( )
157
+ {
158
+ var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
159
+
160
+ using EmptyRepositoryFixture fixture = new ( "main" ) ;
161
+
162
+ fixture . MakeACommit ( "1" ) ;
163
+
164
+ fixture . AssertFullSemver ( "0.0.1" , configuration ) ;
165
+
166
+ fixture . MakeATaggedCommit ( "1.0.0" ) ;
167
+ fixture . MakeACommit ( "2" ) ;
168
+
169
+ fixture . AssertFullSemver ( "1.0.1" , configuration ) ;
170
+
171
+ fixture . BranchTo ( "hotfix/foo" , "foo" ) ;
172
+ fixture . AssertFullSemver ( "1.0.2-foo.0" , configuration ) ;
173
+ fixture . MakeACommit ( "3" ) ;
174
+ fixture . MakeACommit ( "4" ) ;
175
+ fixture . Repository . CreatePullRequestRef ( "hotfix/foo" , MainBranch , prNumber : 8 , normalise : true ) ;
135
176
fixture . AssertFullSemver ( "1.0.2-PullRequest8.3" , configuration ) ;
136
177
}
137
178
@@ -173,7 +214,10 @@ public void SupportBranches()
173
214
[ Test ]
174
215
public void VerifyForwardMerge ( )
175
216
{
176
- var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
217
+ var configuration = GetConfigurationBuilder ( )
218
+ . WithBranch ( "feature" , builder => builder
219
+ . WithIncrement ( IncrementStrategy . Patch )
220
+ ) . Build ( ) ;
177
221
178
222
using var fixture = new EmptyRepositoryFixture ( ) ;
179
223
fixture . Repository . MakeACommit ( "1" ) ;
@@ -321,7 +365,10 @@ public void VerifyDevelopFeatureTracksMainVersion()
321
365
[ Test ]
322
366
public void VerifyMergingMainToFeatureDoesNotCauseBranchCommitsToIncrementVersion ( )
323
367
{
324
- var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
368
+ var configuration = GetConfigurationBuilder ( )
369
+ . WithBranch ( "feature" , builder => builder
370
+ . WithIncrement ( IncrementStrategy . Patch )
371
+ ) . Build ( ) ;
325
372
326
373
using var fixture = new EmptyRepositoryFixture ( ) ;
327
374
fixture . MakeACommit ( $ "first in { MainBranch } ") ;
@@ -346,7 +393,10 @@ public void VerifyMergingMainToFeatureDoesNotCauseBranchCommitsToIncrementVersio
346
393
[ Test ]
347
394
public void VerifyMergingMainToFeatureDoesNotStopMainCommitsIncrementingVersion ( )
348
395
{
349
- var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
396
+ var configuration = GetConfigurationBuilder ( )
397
+ . WithBranch ( "feature" , builder => builder
398
+ . WithIncrement ( IncrementStrategy . Patch )
399
+ ) . Build ( ) ;
350
400
351
401
using var fixture = new EmptyRepositoryFixture ( ) ;
352
402
fixture . MakeACommit ( $ "first in { MainBranch } ") ;
@@ -370,7 +420,10 @@ public void VerifyMergingMainToFeatureDoesNotStopMainCommitsIncrementingVersion(
370
420
[ Test ]
371
421
public void VerifyIssue1154CanForwardMergeMainToFeatureBranch ( )
372
422
{
373
- var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
423
+ var configuration = GetConfigurationBuilder ( )
424
+ . WithBranch ( "feature" , builder => builder
425
+ . WithIncrement ( IncrementStrategy . Patch )
426
+ ) . Build ( ) ;
374
427
375
428
using var fixture = new EmptyRepositoryFixture ( ) ;
376
429
fixture . MakeACommit ( ) ;
@@ -396,7 +449,10 @@ public void VerifyIssue1154CanForwardMergeMainToFeatureBranch()
396
449
[ Test ]
397
450
public void VerifyMergingMainIntoAFeatureBranchWorksWithMultipleBranches ( )
398
451
{
399
- var configuration = GetConfigurationBuilder ( ) . Build ( ) ;
452
+ var configuration = GetConfigurationBuilder ( )
453
+ . WithBranch ( "feature" , builder => builder
454
+ . WithIncrement ( IncrementStrategy . Patch )
455
+ ) . Build ( ) ;
400
456
401
457
using var fixture = new EmptyRepositoryFixture ( ) ;
402
458
fixture . MakeACommit ( $ "first in { MainBranch } ") ;
0 commit comments