mirror of
https://github.com/lukaszraczylo/semver-generator.git
synced 2026-06-16 01:31:19 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
559ed4ff59
|
|||
|
93ea4e6365
|
|||
|
960207e467
|
@@ -126,7 +126,11 @@ jobs:
|
||||
- name: Prepare for push
|
||||
id: prep
|
||||
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}
|
||||
BRANCH=$(echo ${GITHUB_REF##*/} | tr '[A-Z]' '[a-z]')
|
||||
LABELS="org.opencontainers.image.revision=${{ needs.prepare.outputs.GITHUB_SHA }}"
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
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
|
||||
|
||||
@@ -9,7 +15,7 @@ run: build
|
||||
@./semver-gen
|
||||
|
||||
test:
|
||||
@go test ./... -v -race -cover -coverprofile=coverage.out
|
||||
@go test ./... $(ADDITIONAL_BUILD_FLAGS) -v -race -cover -coverprofile=coverage.out
|
||||
|
||||
update:
|
||||
@go get -u ./...
|
||||
@go get -u ./...
|
||||
|
||||
@@ -102,7 +102,6 @@ func checkLatestRelease() (string, bool) {
|
||||
fmt.Println("Query error >>", err)
|
||||
return "", false
|
||||
}
|
||||
fmt.Println(result)
|
||||
result = gjson.Get(result, "repository.releases.nodes.0.tag.name").String()
|
||||
if result == "v1" {
|
||||
result = gjson.Get(result, "repository.releases.nodes.1.tag.name").String()
|
||||
|
||||
@@ -26,6 +26,9 @@ func Test_checkLatestRelease(t *testing.T) {
|
||||
}
|
||||
|
||||
func Test_updatePackage(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip("Skipping test in short / CI mode")
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
want bool
|
||||
|
||||
+9
-3
@@ -55,6 +55,7 @@ type Force struct {
|
||||
Major int
|
||||
Commit string
|
||||
Existing bool
|
||||
Strict bool
|
||||
}
|
||||
|
||||
type SemVer struct {
|
||||
@@ -115,9 +116,14 @@ func debugPrint(content string) {
|
||||
|
||||
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
|
||||
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.Minor, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[1], -1)[0])
|
||||
semanticVersion.Patch, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[2], -1)[0])
|
||||
@@ -134,7 +140,7 @@ func (s *Setup) CalculateSemver() SemVer {
|
||||
for _, tagHash := range s.Tags {
|
||||
if commit.Hash == tagHash.Hash {
|
||||
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
|
||||
}
|
||||
}
|
||||
@@ -330,7 +336,7 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
repo.ListCommits()
|
||||
if params.varExisting {
|
||||
if params.varExisting || repo.Force.Existing {
|
||||
repo.ListExistingTags()
|
||||
}
|
||||
repo.ForcedVersioning()
|
||||
|
||||
+5
-1
@@ -569,7 +569,11 @@ func (suite *Tests) Test_parseExistingSemver() {
|
||||
}
|
||||
for _, tt := range tests {
|
||||
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.Minor, got.Minor, "Unexpected MINOR semver result in "+tt.name)
|
||||
assert.Equal(tt.wantSemanticVersion.Patch, got.Patch, "Unexpected PATCH semver result in "+tt.name)
|
||||
|
||||
@@ -3,6 +3,7 @@ force:
|
||||
major: 1
|
||||
minor: 4
|
||||
existing: true
|
||||
commit: 960207e4677476ad31a9f389f74eaf9f33d49613
|
||||
wording:
|
||||
patch:
|
||||
- update
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
version: 1
|
||||
force:
|
||||
major: 1
|
||||
existing: true
|
||||
existing: false
|
||||
strict: false
|
||||
wording:
|
||||
patch:
|
||||
- update
|
||||
|
||||
Reference in New Issue
Block a user