Compare commits

...

4 Commits

8 changed files with 35 additions and 10 deletions
+5 -1
View File
@@ -126,7 +126,11 @@ jobs:
- name: Prepare for push - name: Prepare for push
id: prep id: prep
run: | run: |
TAGS="${{ needs.prepare.outputs.DOCKER_IMAGE }}:${{ needs.prepare.outputs.GITHUB_SHA }},${{ needs.prepare.outputs.DOCKER_IMAGE }}:${{ needs.prepare.outputs.RELEASE_VERSION }},${{ needs.prepare.outputs.DOCKER_IMAGE }}:latest" if [ -z "${{ needs.prepare.outputs.RELEASE_VERSION }}" ]; then
TAGS="${{ needs.prepare.outputs.DOCKER_IMAGE }}:${{ needs.prepare.outputs.GITHUB_SHA }},${{ needs.prepare.outputs.DOCKER_IMAGE }}:latest"
else
TAGS="${{ needs.prepare.outputs.DOCKER_IMAGE }}:${{ needs.prepare.outputs.GITHUB_SHA }},${{ needs.prepare.outputs.DOCKER_IMAGE }}:${{ needs.prepare.outputs.RELEASE_VERSION }},${{ needs.prepare.outputs.DOCKER_IMAGE }}:latest"
fi
echo ::set-output name=tags::${TAGS} echo ::set-output name=tags::${TAGS}
BRANCH=$(echo ${GITHUB_REF##*/} | tr '[A-Z]' '[a-z]') BRANCH=$(echo ${GITHUB_REF##*/} | tr '[A-Z]' '[a-z]')
LABELS="org.opencontainers.image.revision=${{ needs.prepare.outputs.GITHUB_SHA }}" LABELS="org.opencontainers.image.revision=${{ needs.prepare.outputs.GITHUB_SHA }}"
+7 -1
View File
@@ -1,4 +1,10 @@
LOCAL_VERSION?=$(shell semver-gen generate -l -c config-release.yaml | sed -e 's|SEMVER ||g') LOCAL_VERSION?=$(shell semver-gen generate -l -c config-release.yaml | sed -e 's|SEMVER ||g')
CI_RUN?=false
ADDITIONAL_BUILD_FLAGS=""
ifeq ($(CI_RUN), true)
ADDITIONAL_BUILD_FLAGS="-test.short"
endif
all: build all: build
@@ -9,7 +15,7 @@ run: build
@./semver-gen @./semver-gen
test: test:
@go test ./... -v -race -cover -coverprofile=coverage.out @go test ./... $(ADDITIONAL_BUILD_FLAGS) -v -race -cover -coverprofile=coverage.out
update: update:
@go get -u ./... @go get -u ./...
-1
View File
@@ -102,7 +102,6 @@ func checkLatestRelease() (string, bool) {
fmt.Println("Query error >>", err) fmt.Println("Query error >>", err)
return "", false return "", false
} }
fmt.Println(result)
result = gjson.Get(result, "repository.releases.nodes.0.tag.name").String() result = gjson.Get(result, "repository.releases.nodes.0.tag.name").String()
if result == "v1" { if result == "v1" {
result = gjson.Get(result, "repository.releases.nodes.1.tag.name").String() result = gjson.Get(result, "repository.releases.nodes.1.tag.name").String()
+3
View File
@@ -26,6 +26,9 @@ func Test_checkLatestRelease(t *testing.T) {
} }
func Test_updatePackage(t *testing.T) { func Test_updatePackage(t *testing.T) {
if testing.Short() {
t.Skip("Skipping test in short / CI mode")
}
tests := []struct { tests := []struct {
name string name string
want bool want bool
+10 -4
View File
@@ -55,6 +55,7 @@ type Force struct {
Major int Major int
Commit string Commit string
Existing bool Existing bool
Strict bool
} }
type SemVer struct { type SemVer struct {
@@ -115,9 +116,14 @@ func debugPrint(content string) {
var extractNumber = regexp.MustCompile("[0-9]+") var extractNumber = regexp.MustCompile("[0-9]+")
func parseExistingSemver(tagName string) (semanticVersion SemVer) { func parseExistingSemver(tagName string, currentSemver SemVer) (semanticVersion SemVer) {
debugPrint(fmt.Sprintln("Parsing existing semver:", tagName))
var tagNameParts []string var tagNameParts []string
tagNameParts = strings.Split(tagName, ".") tagNameParts = strings.Split(tagName, ".")
if len(tagNameParts) < 3 {
debugPrint("Unable to parse incompatible semver ( non x.y.z )")
return currentSemver
}
semanticVersion.Major, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[0], -1)[0]) semanticVersion.Major, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[0], -1)[0])
semanticVersion.Minor, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[1], -1)[0]) semanticVersion.Minor, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[1], -1)[0])
semanticVersion.Patch, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[2], -1)[0]) semanticVersion.Patch, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[2], -1)[0])
@@ -134,13 +140,13 @@ func (s *Setup) CalculateSemver() SemVer {
for _, tagHash := range s.Tags { for _, tagHash := range s.Tags {
if commit.Hash == tagHash.Hash { if commit.Hash == tagHash.Hash {
debugPrint(fmt.Sprintln("Found existing tag:", tagHash.Name, "related to", commit.Message)) debugPrint(fmt.Sprintln("Found existing tag:", tagHash.Name, "related to", commit.Message))
s.Semver = parseExistingSemver(tagHash.Name) s.Semver = parseExistingSemver(tagHash.Name, s.Semver)
continue continue
} }
} }
} }
if !params.varStrict { if !params.varStrict && !s.Force.Strict {
s.Semver.Patch++ s.Semver.Patch++
debugPrint(fmt.Sprintln("Incrementing patch (DEFAULT) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver())) debugPrint(fmt.Sprintln("Incrementing patch (DEFAULT) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver()))
} }
@@ -330,7 +336,7 @@ func main() {
os.Exit(1) os.Exit(1)
} }
repo.ListCommits() repo.ListCommits()
if params.varExisting { if params.varExisting || repo.Force.Existing {
repo.ListExistingTags() repo.ListExistingTags()
} }
repo.ForcedVersioning() repo.ForcedVersioning()
+5 -1
View File
@@ -569,7 +569,11 @@ func (suite *Tests) Test_parseExistingSemver() {
} }
for _, tt := range tests { for _, tt := range tests {
suite.T().Run(tt.name, func(t *testing.T) { suite.T().Run(tt.name, func(t *testing.T) {
got := parseExistingSemver(tt.args.tagName) got := parseExistingSemver(tt.args.tagName, SemVer{
Major: 1,
Minor: 1,
Patch: 1,
})
assert.Equal(tt.wantSemanticVersion.Major, got.Major, "Unexpected MAJOR semver result in "+tt.name) assert.Equal(tt.wantSemanticVersion.Major, got.Major, "Unexpected MAJOR semver result in "+tt.name)
assert.Equal(tt.wantSemanticVersion.Minor, got.Minor, "Unexpected MINOR semver result in "+tt.name) assert.Equal(tt.wantSemanticVersion.Minor, got.Minor, "Unexpected MINOR semver result in "+tt.name)
assert.Equal(tt.wantSemanticVersion.Patch, got.Patch, "Unexpected PATCH semver result in "+tt.name) assert.Equal(tt.wantSemanticVersion.Patch, got.Patch, "Unexpected PATCH semver result in "+tt.name)
+2
View File
@@ -3,6 +3,8 @@ force:
major: 1 major: 1
minor: 4 minor: 4
existing: true existing: true
strict: false
commit: 960207e4677476ad31a9f389f74eaf9f33d49613
wording: wording:
patch: patch:
- update - update
+2 -1
View File
@@ -1,7 +1,8 @@
version: 1 version: 1
force: force:
major: 1 major: 1
existing: true existing: false
strict: false
wording: wording:
patch: patch:
- update - update