mirror of
https://github.com/lukaszraczylo/semver-generator.git
synced 2026-06-10 23:28:58 +00:00
Add the release candidate to versioning.
This commit is contained in:
+26
-9
@@ -41,9 +41,10 @@ var (
|
||||
)
|
||||
|
||||
type Wording struct {
|
||||
Patch []string
|
||||
Minor []string
|
||||
Major []string
|
||||
Patch []string
|
||||
Minor []string
|
||||
Major []string
|
||||
Release []string
|
||||
}
|
||||
|
||||
type Force struct {
|
||||
@@ -54,9 +55,11 @@ type Force struct {
|
||||
}
|
||||
|
||||
type SemVer struct {
|
||||
Patch int
|
||||
Minor int
|
||||
Major int
|
||||
Patch int
|
||||
Minor int
|
||||
Major int
|
||||
Release int
|
||||
EnableReleaseCandidate bool
|
||||
}
|
||||
|
||||
type Setup struct {
|
||||
@@ -106,19 +109,30 @@ func (s *Setup) CalculateSemver() SemVer {
|
||||
matchPatch := checkMatches(commitSlice, s.Wording.Patch)
|
||||
matchMinor := checkMatches(commitSlice, s.Wording.Minor)
|
||||
matchMajor := checkMatches(commitSlice, s.Wording.Major)
|
||||
matchReleaseCandidate := checkMatches(commitSlice, s.Wording.Release)
|
||||
if matchPatch {
|
||||
s.Semver.Patch++
|
||||
debugPrint(fmt.Sprintln("Incrementing patch (WORDING) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver()))
|
||||
}
|
||||
if matchReleaseCandidate {
|
||||
s.Semver.Release++
|
||||
s.Semver.Patch = 1
|
||||
s.Semver.EnableReleaseCandidate = true
|
||||
debugPrint(fmt.Sprintln("Incrementing release candidate (WORDING) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver()))
|
||||
}
|
||||
if matchMinor {
|
||||
s.Semver.Minor++
|
||||
s.Semver.Patch = 1
|
||||
s.Semver.EnableReleaseCandidate = false
|
||||
s.Semver.Release = 0
|
||||
debugPrint(fmt.Sprintln("Incrementing minor (WORDING) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver()))
|
||||
}
|
||||
if matchMajor {
|
||||
s.Semver.Major++
|
||||
s.Semver.Minor = 0
|
||||
s.Semver.Patch = 1
|
||||
s.Semver.EnableReleaseCandidate = false
|
||||
s.Semver.Release = 0
|
||||
debugPrint(fmt.Sprintln("Incrementing major (WORDING) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver()))
|
||||
}
|
||||
}
|
||||
@@ -156,7 +170,6 @@ func (s *Setup) ListCommits() ([]CommitDetails, error) {
|
||||
}
|
||||
|
||||
debugPrint(fmt.Sprintln("\n---COMMITS AFTER CUT---\n", s.Commits))
|
||||
|
||||
return s.Commits, err
|
||||
}
|
||||
|
||||
@@ -219,8 +232,12 @@ func (s *Setup) ReadConfig(file string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *Setup) getSemver() string {
|
||||
return fmt.Sprintf("%d.%d.%d", s.Semver.Major, s.Semver.Minor, s.Semver.Patch)
|
||||
func (s *Setup) getSemver() (semverReturned string) {
|
||||
semverReturned = fmt.Sprintf("%d.%d.%d", s.Semver.Major, s.Semver.Minor, s.Semver.Patch)
|
||||
if s.Semver.EnableReleaseCandidate {
|
||||
semverReturned = fmt.Sprintf("%s-rc.%d", semverReturned, s.Semver.Release)
|
||||
}
|
||||
return semverReturned
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -66,6 +66,32 @@ func (suite *Tests) TestSetup_getSemver() {
|
||||
},
|
||||
want: "1.3.7",
|
||||
},
|
||||
{
|
||||
name: "Return 1.3.7-rc.2",
|
||||
fields: fields{
|
||||
Semver: SemVer{
|
||||
Major: 1,
|
||||
Minor: 3,
|
||||
Patch: 7,
|
||||
Release: 2,
|
||||
EnableReleaseCandidate: true,
|
||||
},
|
||||
},
|
||||
want: "1.3.7-rc.2",
|
||||
},
|
||||
{
|
||||
name: "Return 1.3.9",
|
||||
fields: fields{
|
||||
Semver: SemVer{
|
||||
Major: 1,
|
||||
Minor: 3,
|
||||
Patch: 9,
|
||||
Release: 2,
|
||||
EnableReleaseCandidate: false,
|
||||
},
|
||||
},
|
||||
want: "1.3.9",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
suite.T().Run(tt.name, func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user