You've already forked go-semantic-release
Merge pull request #19 from Nightapes/fix_release_version_calculation
Fix release version calculation
This commit is contained in:
1
.github/workflows/main.yml
vendored
1
.github/workflows/main.yml
vendored
@@ -30,6 +30,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
go build -o build/go-semantic-release-temp ./cmd/go-semantic-release/
|
||||
./build/go-semantic-release-temp next --no-cache --loglevel trace
|
||||
go build -o build/go-semantic-release -ldflags "-w -s --X main.version=`./build/go-semantic-release-temp next`" ./cmd/go-semantic-release/
|
||||
GOOS=windows GOARCH=386 go build -o build/go-semantic-release.exe -ldflags "-w -s -X main.version=`./build/go-semantic-release-temp next`" ./cmd/go-semantic-release/
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ const ANGULAR = "angular"
|
||||
|
||||
func newAngular() *angular {
|
||||
return &angular{
|
||||
regex: `^(TAG)(?:\((.*)\))?: (.*)$`,
|
||||
regex: `^(TAG)(?:\((.*)\))?: (.*)`,
|
||||
log: log.WithField("analyzer", ANGULAR),
|
||||
rules: []Rule{
|
||||
{
|
||||
|
||||
@@ -49,6 +49,11 @@ func (c *Calculator) CalculateNewVersion(commits map[shared.Release][]shared.Ana
|
||||
}
|
||||
case "release":
|
||||
if !firstRelease {
|
||||
if lastVersion.Prerelease() != "" {
|
||||
newVersion, _ := lastVersion.SetPrerelease("")
|
||||
return newVersion
|
||||
}
|
||||
|
||||
if len(commits["major"]) > 0 {
|
||||
return lastVersion.IncMajor()
|
||||
} else if len(commits["minor"]) > 0 {
|
||||
|
||||
@@ -50,6 +50,7 @@ func GetCIProvider(gitUtil *gitutil.GitUtil, envs map[string]string) (*ProviderC
|
||||
config, err := service.detect(envs)
|
||||
if err == nil {
|
||||
log.Infof("Found CI: %s", config.Name)
|
||||
log.Tracef("Found CI config: %+v", config)
|
||||
return config, nil
|
||||
}
|
||||
log.Debugf("%s", err.Error())
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
"sort"
|
||||
|
||||
"github.com/Masterminds/semver"
|
||||
"github.com/Nightapes/go-semantic-release/internal/shared"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gopkg.in/src-d/go-git.v4"
|
||||
"gopkg.in/src-d/go-git.v4/plumbing"
|
||||
"gopkg.in/src-d/go-git.v4/plumbing/object"
|
||||
"github.com/Nightapes/go-semantic-release/internal/shared"
|
||||
)
|
||||
|
||||
// GitUtil struct
|
||||
@@ -87,7 +87,7 @@ func (g *GitUtil) GetLastVersion() (*semver.Version, string, error) {
|
||||
|
||||
err = gitTags.ForEach(func(p *plumbing.Reference) error {
|
||||
v, err := semver.NewVersion(p.Name().Short())
|
||||
log.Tracef("%+v with hash: %s", p.Target(), p.Hash())
|
||||
log.Tracef("Tag %+v with hash: %s", p.Target(), p.Hash())
|
||||
|
||||
if err == nil {
|
||||
tags = append(tags, v)
|
||||
|
||||
@@ -2,7 +2,6 @@ package semanticrelease
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Masterminds/semver"
|
||||
@@ -98,14 +97,21 @@ func (s *SemanticRelease) GetNextVersion(provider *ci.ProviderConfig, force bool
|
||||
analyzedCommits := s.analyzer.Analyze(commits)
|
||||
|
||||
var newVersion semver.Version
|
||||
foundBranchConfig := false
|
||||
for branch, releaseType := range s.config.Branch {
|
||||
if provider.Branch == branch || strings.HasPrefix(provider.Branch, branch) {
|
||||
if provider.Branch == branch {
|
||||
log.Debugf("Found branch config for branch %s with release type %s", provider.Branch, releaseType)
|
||||
newVersion = s.calculator.CalculateNewVersion(analyzedCommits, lastVersion, releaseType, firstRelease)
|
||||
foundBranchConfig = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !foundBranchConfig {
|
||||
log.Warnf("No branch config found for branch %s, will return last known version", provider.Branch)
|
||||
newVersion = *lastVersion
|
||||
}
|
||||
|
||||
releaseVersion := shared.ReleaseVersion{
|
||||
Next: shared.ReleaseVersionEntry{
|
||||
Commit: provider.Commit,
|
||||
|
||||
Reference in New Issue
Block a user