mirror of
https://github.com/lukaszraczylo/semver-generator.git
synced 2026-06-06 22:53:46 +00:00
Fix: Issue with sorting commits after specifying hash.
This commit is contained in:
@@ -75,14 +75,14 @@ jobs:
|
||||
- name: Run unit tests
|
||||
run: |
|
||||
make test CI_RUN=${CI}
|
||||
- name: Codeclimate
|
||||
uses: paambaati/codeclimate-action@v2.7.5
|
||||
with:
|
||||
coverageCommand: go test -race -coverprofile=cover.out -covermode=atomic -v -bench=. ./...
|
||||
coverageLocations:
|
||||
"${{github.workspace}}/cover.out:gocov"
|
||||
env:
|
||||
CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_KEY }}
|
||||
# - name: Codeclimate
|
||||
# uses: paambaati/codeclimate-action@v2.7.5
|
||||
# with:
|
||||
# coverageCommand: go test -race -coverprofile=cover.out -covermode=atomic -v -bench=. ./...
|
||||
# coverageLocations:
|
||||
# "${{github.workspace}}/cover.out:gocov"
|
||||
# env:
|
||||
# CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_KEY }}
|
||||
|
||||
code_scans:
|
||||
needs: [ prepare ]
|
||||
|
||||
+50
-8
@@ -88,18 +88,30 @@ func checkMatches(content []string, targets []string) bool {
|
||||
func (s *Setup) CalculateSemver() SemVer {
|
||||
for _, commit := range s.Commits {
|
||||
s.Semver.Patch++
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Incrementing patch (DEFAULT) on ", commit.Message)
|
||||
}
|
||||
commitSlice := strings.Split(commit.Message, " ")
|
||||
matchPatch := checkMatches(commitSlice, s.Wording.Patch)
|
||||
matchMinor := checkMatches(commitSlice, s.Wording.Minor)
|
||||
matchMajor := checkMatches(commitSlice, s.Wording.Major)
|
||||
if matchPatch {
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Incrementing patch (WORDING) on ", commit.Message)
|
||||
}
|
||||
s.Semver.Patch++
|
||||
}
|
||||
if matchMinor {
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Incrementing minor (WORDING) on ", commit.Message)
|
||||
}
|
||||
s.Semver.Minor++
|
||||
s.Semver.Patch = 1
|
||||
}
|
||||
if matchMajor {
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Incrementing major (WORDING) on ", commit.Message)
|
||||
}
|
||||
s.Semver.Major++
|
||||
s.Semver.Minor = 0
|
||||
s.Semver.Patch = 1
|
||||
@@ -111,23 +123,44 @@ func (s *Setup) CalculateSemver() SemVer {
|
||||
func (s *Setup) ListCommits() ([]CommitDetails, error) {
|
||||
var ref *plumbing.Reference
|
||||
var err error
|
||||
if zero.IsZero(s.Force.Commit) {
|
||||
ref, err = s.RepositoryHandler.Head()
|
||||
} else {
|
||||
ref = plumbing.NewHashReference("start_commit", plumbing.NewHash(s.Force.Commit))
|
||||
}
|
||||
|
||||
// if zero.IsZero(s.Force.Commit) {
|
||||
ref, err = s.RepositoryHandler.Head()
|
||||
// } else {
|
||||
// if varDebug {
|
||||
// fmt.Println("DEBUG: Forced start from commit", s.Force.Commit)
|
||||
// }
|
||||
// ref = plumbing.NewHashReference("start_commit", plumbing.NewHash(s.Force.Commit))
|
||||
// }
|
||||
if err != nil {
|
||||
return []CommitDetails{}, err
|
||||
}
|
||||
commitsList, err := s.RepositoryHandler.Log(&git.LogOptions{From: ref.Hash(), Order: git.LogOrderBSF})
|
||||
commitsList, err := s.RepositoryHandler.Log(&git.LogOptions{From: ref.Hash()})
|
||||
if err != nil {
|
||||
return []CommitDetails{}, err
|
||||
}
|
||||
|
||||
var tmpResults []CommitDetails
|
||||
commitsList.ForEach(func(c *object.Commit) error {
|
||||
s.Commits = append(s.Commits, CommitDetails{Hash: c.Hash.String(), Author: c.Author.String(), Message: c.Message, Timestamp: c.Author.When})
|
||||
sort.Slice(s.Commits, func(i, j int) bool { return s.Commits[i].Timestamp.Unix() < s.Commits[j].Timestamp.Unix() })
|
||||
tmpResults = append(tmpResults, CommitDetails{Hash: c.Hash.String(), Author: c.Author.String(), Message: c.Message, Timestamp: c.Author.When})
|
||||
sort.Slice(tmpResults, func(i, j int) bool { return tmpResults[i].Timestamp.Unix() < tmpResults[j].Timestamp.Unix() })
|
||||
return nil
|
||||
})
|
||||
|
||||
if varDebug {
|
||||
fmt.Println("\n---COMMITS BEFORE CUT---\n", tmpResults)
|
||||
}
|
||||
|
||||
for commitId, cmt := range tmpResults {
|
||||
if zero.IsZero(s.Force.Commit) || (!zero.IsZero(s.Force.Commit) && cmt.Hash == s.Force.Commit) {
|
||||
s.Commits = tmpResults[commitId:]
|
||||
}
|
||||
}
|
||||
|
||||
if varDebug {
|
||||
fmt.Println("\n---COMMITS AFTER CUT---\n", s.Commits)
|
||||
}
|
||||
|
||||
return s.Commits, err
|
||||
}
|
||||
|
||||
@@ -159,12 +192,21 @@ func (s *Setup) Prepare() error {
|
||||
|
||||
func (s *Setup) ForcedVersioning() {
|
||||
if !zero.IsZero(s.Force.Major) {
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Forced versioning (MAJOR)", s.Force.Major)
|
||||
}
|
||||
s.Semver.Major = s.Force.Major
|
||||
}
|
||||
if !zero.IsZero(s.Force.Minor) {
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Forced versioning (MINOR)", s.Force.Minor)
|
||||
}
|
||||
s.Semver.Minor = s.Force.Minor
|
||||
}
|
||||
if !zero.IsZero(s.Force.Patch) {
|
||||
if varDebug {
|
||||
fmt.Println("DEBUG: Forced versioning (PATCH)", s.Force.Patch)
|
||||
}
|
||||
s.Semver.Patch = s.Force.Patch
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -290,7 +290,7 @@ func (suite *Tests) TestSetup_ListCommits() {
|
||||
fields: fields{
|
||||
RepositoryName: "https://github.com/lukaszraczylo/simple-gql-client",
|
||||
Force: Force{
|
||||
Commit: "69fbe2df696f40281b9104ff073d26186cde1024",
|
||||
Commit: "97d3682ed94168600926f9ff6da650403d1f3317",
|
||||
},
|
||||
},
|
||||
noCommits: false,
|
||||
@@ -336,8 +336,8 @@ func (suite *Tests) TestSetup_CalculateSemver() {
|
||||
RepositoryName: "https://github.com/lukaszraczylo/simple-gql-client",
|
||||
},
|
||||
wantSemver: wantSemver{
|
||||
Major: 5,
|
||||
Minor: 1,
|
||||
Major: 1,
|
||||
Minor: 2,
|
||||
Patch: 1,
|
||||
},
|
||||
},
|
||||
@@ -346,13 +346,13 @@ func (suite *Tests) TestSetup_CalculateSemver() {
|
||||
fields: fields{
|
||||
RepositoryName: "https://github.com/lukaszraczylo/simple-gql-client",
|
||||
Force: Force{
|
||||
Commit: "69fbe2df696f40281b9104ff073d26186cde1024",
|
||||
Commit: "97d3682ed94168600926f9ff6da650403d1f3317",
|
||||
},
|
||||
},
|
||||
wantSemver: wantSemver{
|
||||
Major: 3,
|
||||
Minor: 0,
|
||||
Patch: 5,
|
||||
Major: 1,
|
||||
Minor: 2,
|
||||
Patch: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -58,6 +58,7 @@ var (
|
||||
varRepoName, varLocalCfg string
|
||||
varUseLocal bool
|
||||
varShowVersion bool
|
||||
varDebug bool
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -68,5 +69,6 @@ func init() {
|
||||
rootCmd.PersistentFlags().StringVarP(&varLocalCfg, "config", "c", "config.yaml", "Path to config file")
|
||||
rootCmd.PersistentFlags().BoolVarP(&varUseLocal, "local", "l", false, "Use local repository")
|
||||
rootCmd.PersistentFlags().BoolVarP(&varShowVersion, "version", "v", false, "Display version")
|
||||
rootCmd.PersistentFlags().BoolVarP(&varDebug, "debug", "d", false, "Enable debug mode")
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -1,7 +1,7 @@
|
||||
version: 1
|
||||
force:
|
||||
major: 1
|
||||
# commit: 69fbe2df696f40281b9104ff073d26186cde1024
|
||||
commit: 97d3682ed94168600926f9ff6da650403d1f3317
|
||||
wording:
|
||||
patch:
|
||||
- update
|
||||
@@ -12,5 +12,4 @@ wording:
|
||||
- change
|
||||
- improve
|
||||
major:
|
||||
- breaking
|
||||
- the # For testing purposes
|
||||
- breaking
|
||||
Reference in New Issue
Block a user