File tree Expand file tree Collapse file tree 8 files changed +97
-0
lines changed Expand file tree Collapse file tree 8 files changed +97
-0
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,13 @@ public void CanReadDocument()
30
30
release-branch-tag: rc
31
31
next-version: 2.0.0
32
32
tag-prefix: '[vV|version-]'
33
+ mode: ContinuousDelivery
34
+ develop:
35
+ mode: ContinuousDeployment
36
+ tag: dev
37
+ release*:
38
+ mode: ContinuousDeployment
39
+ tag: rc
33
40
" ;
34
41
SetupConfigFileContent ( text ) ;
35
42
@@ -39,6 +46,25 @@ public void CanReadDocument()
39
46
config . ReleaseBranchTag . ShouldBe ( "rc" ) ;
40
47
config . NextVersion . ShouldBe ( "2.0.0" ) ;
41
48
config . TagPrefix . ShouldBe ( "[vV|version-]" ) ;
49
+ config . Release . VersioningMode . ShouldBe ( VersioningMode . ContinuousDeployment ) ;
50
+ config . Develop . VersioningMode . ShouldBe ( VersioningMode . ContinuousDeployment ) ;
51
+ config . VersioningMode . ShouldBe ( VersioningMode . ContinuousDelivery ) ;
52
+ config . Release . Tag . ShouldBe ( "rc" ) ;
53
+ config . Develop . Tag . ShouldBe ( "dev" ) ;
54
+ }
55
+
56
+ [ Test ]
57
+ public void CanInheritVersioningMode ( )
58
+ {
59
+ const string text = @"
60
+ mode: ContinuousDelivery
61
+ develop:
62
+ mode: ContinuousDeployment
63
+ " ;
64
+ SetupConfigFileContent ( text ) ;
65
+ var config = ConfigurationProvider . Provide ( gitDirectory , fileSystem ) ;
66
+ config . Develop . VersioningMode . ShouldBe ( VersioningMode . ContinuousDeployment ) ;
67
+ config . Release . VersioningMode . ShouldBe ( VersioningMode . ContinuousDelivery ) ;
42
68
}
43
69
44
70
[ Test ]
Original file line number Diff line number Diff line change
1
+ namespace GitVersion
2
+ {
3
+ using YamlDotNet . Serialization ;
4
+
5
+ public class BranchConfig
6
+ {
7
+ [ YamlAlias ( "mode" ) ]
8
+ public VersioningMode VersioningMode { get ; set ; }
9
+
10
+ [ YamlAlias ( "tag" ) ]
11
+ public string Tag { get ; set ; }
12
+ }
13
+ }
Original file line number Diff line number Diff line change 4
4
5
5
public class Config
6
6
{
7
+ VersioningMode versioningMode ;
8
+
7
9
public Config ( )
8
10
{
9
11
AssemblyVersioningScheme = AssemblyVersioningScheme . MajorMinorPatch ;
10
12
DevelopBranchTag = "unstable" ;
11
13
ReleaseBranchTag = "beta" ;
12
14
TagPrefix = "[vV]" ;
15
+ Release = new BranchConfig ( ) ;
16
+ Develop = new BranchConfig ( ) ;
17
+ VersioningMode = VersioningMode . ContinuousDelivery ;
13
18
}
14
19
15
20
[ YamlAlias ( "assembly-versioning-scheme" ) ]
@@ -21,6 +26,28 @@ public Config()
21
26
[ YamlAlias ( "release-branch-tag" ) ]
22
27
public string ReleaseBranchTag { get ; set ; }
23
28
29
+ [ YamlAlias ( "mode" ) ]
30
+ public VersioningMode VersioningMode
31
+ {
32
+ get
33
+ {
34
+ return this . versioningMode ;
35
+ }
36
+ set
37
+ {
38
+ Develop . VersioningMode = value ;
39
+ Release . VersioningMode = value ;
40
+ this . versioningMode = value ;
41
+ }
42
+ }
43
+
44
+ [ YamlAlias ( "develop" ) ]
45
+ public BranchConfig Develop { get ; set ; }
46
+
47
+ [ YamlAlias ( "release*" ) ]
48
+ public BranchConfig Release { get ; set ; }
49
+
50
+
24
51
[ YamlAlias ( "tag-prefix" ) ]
25
52
public string TagPrefix { get ; set ; }
26
53
Original file line number Diff line number Diff line change 70
70
<Compile Include =" BuildServers\IBuildServer.cs" />
71
71
<Compile Include =" BuildServers\MyGet.cs" />
72
72
<Compile Include =" BuildServers\TeamCity.cs" />
73
+ <Compile Include =" Configuration\BranchConfig.cs" />
73
74
<Compile Include =" Configuration\Config.cs" />
74
75
<Compile Include =" Configuration\ConfigReader.cs" />
75
76
<Compile Include =" Configuration\ConfigurationProvider.cs" />
79
80
<Compile Include =" Helpers\IFileSystem.cs" />
80
81
<Compile Include =" LastMinorVersionFinder.cs" />
81
82
<Compile Include =" SemanticVersionExtensions.cs" />
83
+ <Compile Include =" VersioningModes\ContinuousDeliveryMode.cs" />
84
+ <Compile Include =" VersioningModes\ContinuousDeploymentMode.cs" />
85
+ <Compile Include =" VersioningModes\VersioningMode.cs" />
86
+ <Compile Include =" VersioningModes\VersioningModeBase.cs" />
82
87
<Compile Include =" WarningException.cs" />
83
88
<Compile Include =" ExtensionMethods.cs" />
84
89
<Compile Include =" GitDirFinder.cs" />
Original file line number Diff line number Diff line change
1
+ namespace GitVersion . VersioningModes
2
+ {
3
+ public class ContinuousDeliveryMode : VersioningModeBase
4
+ {
5
+ }
6
+ }
Original file line number Diff line number Diff line change
1
+ namespace GitVersion . VersioningModes
2
+ {
3
+ public class ContinuousDeploymentMode : VersioningModeBase
4
+ {
5
+ }
6
+ }
Original file line number Diff line number Diff line change
1
+ namespace GitVersion
2
+ {
3
+ public enum VersioningMode
4
+ {
5
+ ContinuousDelivery ,
6
+ ContinuousDeployment
7
+ }
8
+ }
Original file line number Diff line number Diff line change
1
+ namespace GitVersion . VersioningModes
2
+ {
3
+ public abstract class VersioningModeBase
4
+ {
5
+ }
6
+ }
You can’t perform that action at this time.
0 commit comments