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