mirror of
https://github.com/lukaszraczylo/semver-generator.git
synced 2026-06-16 01:31:19 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
53c059c091
|
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug, to be confirmed
|
||||
assignees: lukaszraczylo
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Output with debug**
|
||||
[ paste output of the command with `-d` flag here ]
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -126,11 +126,7 @@ jobs:
|
||||
- name: Prepare for push
|
||||
id: prep
|
||||
run: |
|
||||
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
|
||||
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"
|
||||
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 }}"
|
||||
@@ -201,15 +197,14 @@ jobs:
|
||||
# body_path: .release_notes
|
||||
# draft: false
|
||||
prerelease: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main' }}
|
||||
- name: Delete previous v1 release asset
|
||||
uses: mknejp/delete-release-assets@v1
|
||||
if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
fail-if-no-assets: false
|
||||
fail-if-no-release: false
|
||||
tag: v1
|
||||
assets: 'semver-gen-*'
|
||||
# - name: Delete previous v1 release asset
|
||||
# uses: mknejp/delete-release-assets@v1
|
||||
# with:
|
||||
# token: ${{ github.token }}
|
||||
# fail-if-no-assets: false
|
||||
# fail-if-no-release: false
|
||||
# tag: v1
|
||||
# assets: 'semver-gen-*'
|
||||
- name: Create Release V1
|
||||
id: create_release_global
|
||||
uses: marvinpinto/action-automatic-releases@latest
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ RUN apk add make
|
||||
WORKDIR /go/src/app
|
||||
ENV GO111MODULE=on CGO_ENABLED=1 GOOS=linux
|
||||
COPY . /go/src/app/
|
||||
RUN make build
|
||||
RUN make
|
||||
|
||||
FROM alpine:latest
|
||||
RUN apk add --no-cache ca-certificates
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
LOCAL_VERSION?=""
|
||||
LOCAL_VERSION?=$(shell semver-gen generate -l -c config-release.yaml | sed -e 's|SEMVER ||g')
|
||||
CI_RUN?=false
|
||||
ADDITIONAL_BUILD_FLAGS=""
|
||||
|
||||
@@ -6,31 +6,16 @@ ifeq ($(CI_RUN), true)
|
||||
ADDITIONAL_BUILD_FLAGS="-test.short"
|
||||
endif
|
||||
|
||||
ifneq ($(shell which semver-gen), "")
|
||||
LOCAL_VERSION="0.0.0-dev"
|
||||
else
|
||||
LOCAL_VERSION=$(shell semver-gen generate -l -c config-release.yaml | sed -e 's|SEMVER ||g')
|
||||
endif
|
||||
all: build
|
||||
|
||||
.PHONY: help
|
||||
help: ## display this help
|
||||
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\nTargets:\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-20s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
|
||||
|
||||
.PHONY: all
|
||||
all: build ## Build all targets
|
||||
|
||||
.PHONY: build
|
||||
build: ## Build binary
|
||||
build:
|
||||
go build -o semver-gen -ldflags="-s -w -X main.PKG_VERSION=${LOCAL_VERSION}" *.go
|
||||
|
||||
# .PHONY: run
|
||||
# run: build ## Build binary and execute it
|
||||
# @./semver-gen
|
||||
run: build
|
||||
@./semver-gen
|
||||
|
||||
.PHONY: test
|
||||
test: ## Run whole test suite
|
||||
test:
|
||||
@go test ./... $(ADDITIONAL_BUILD_FLAGS) -v -race -cover -coverprofile=coverage.out
|
||||
|
||||
.PHONY: update
|
||||
update: ## Update all dependencies and sub-packages
|
||||
update:
|
||||
@go get -u ./...
|
||||
|
||||
@@ -102,6 +102,7 @@ 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()
|
||||
|
||||
+6
-11
@@ -55,7 +55,6 @@ type Force struct {
|
||||
Major int
|
||||
Commit string
|
||||
Existing bool
|
||||
Strict bool
|
||||
}
|
||||
|
||||
type SemVer struct {
|
||||
@@ -116,14 +115,9 @@ func debugPrint(content string) {
|
||||
|
||||
var extractNumber = regexp.MustCompile("[0-9]+")
|
||||
|
||||
func parseExistingSemver(tagName string, currentSemver SemVer) (semanticVersion SemVer) {
|
||||
debugPrint(fmt.Sprintln("Parsing existing semver:", tagName))
|
||||
func parseExistingSemver(tagName string) (semanticVersion SemVer) {
|
||||
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])
|
||||
@@ -140,13 +134,13 @@ 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)
|
||||
s.Semver = parseExistingSemver(tagHash.Name)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !params.varStrict && !s.Force.Strict {
|
||||
if !params.varStrict {
|
||||
s.Semver.Patch++
|
||||
debugPrint(fmt.Sprintln("Incrementing patch (DEFAULT) on ", strings.TrimSuffix(commit.Message, "\n"), "| Semver:", s.getSemver()))
|
||||
}
|
||||
@@ -327,7 +321,8 @@ func main() {
|
||||
if repo.Generate || params.varGenerateInTest {
|
||||
err := repo.ReadConfig(repo.LocalConfigFile)
|
||||
if err != nil {
|
||||
fmt.Println("Unable to find config file semver.yaml. Using defaults and flags.", repo.LocalConfigFile)
|
||||
fmt.Println("Unable to find config file", repo.LocalConfigFile)
|
||||
os.Exit(1)
|
||||
}
|
||||
err = repo.Prepare()
|
||||
if err != nil {
|
||||
@@ -335,7 +330,7 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
repo.ListCommits()
|
||||
if params.varExisting || repo.Force.Existing {
|
||||
if params.varExisting {
|
||||
repo.ListExistingTags()
|
||||
}
|
||||
repo.ForcedVersioning()
|
||||
|
||||
+1
-5
@@ -569,11 +569,7 @@ func (suite *Tests) Test_parseExistingSemver() {
|
||||
}
|
||||
for _, tt := range tests {
|
||||
suite.T().Run(tt.name, func(t *testing.T) {
|
||||
got := parseExistingSemver(tt.args.tagName, SemVer{
|
||||
Major: 1,
|
||||
Minor: 1,
|
||||
Patch: 1,
|
||||
})
|
||||
got := parseExistingSemver(tt.args.tagName)
|
||||
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,8 +3,6 @@ force:
|
||||
major: 1
|
||||
minor: 4
|
||||
existing: true
|
||||
strict: false
|
||||
commit: 960207e4677476ad31a9f389f74eaf9f33d49613
|
||||
wording:
|
||||
patch:
|
||||
- update
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
version: 1
|
||||
force:
|
||||
major: 1
|
||||
existing: false
|
||||
strict: false
|
||||
existing: true
|
||||
wording:
|
||||
patch:
|
||||
- update
|
||||
|
||||
Reference in New Issue
Block a user