Merge pull request #19 from Nightapes/fix_release_version_calculation

Fix release version calculation
This commit is contained in:
Felix Wiedmann
2019-09-03 23:43:02 +02:00
committed by GitHub
6 changed files with 18 additions and 5 deletions

View File

@@ -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/

View File

@@ -22,7 +22,7 @@ const ANGULAR = "angular"
func newAngular() *angular {
return &angular{
regex: `^(TAG)(?:\((.*)\))?: (.*)$`,
regex: `^(TAG)(?:\((.*)\))?: (.*)`,
log: log.WithField("analyzer", ANGULAR),
rules: []Rule{
{

View File

@@ -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 {

View File

@@ -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())

View File

@@ -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)

View File

@@ -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,