diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 764b2df..ab6b527 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -63,7 +63,7 @@ jobs: TAG="${{ github.event.inputs.tag || github.ref_name }}" API="${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases" - PREV_TAG=$(git tag --sort=-version:refname | grep -v "^${TAG}$" | head -1) + PREV_TAG=$(git tag --sort=-version:refname | { grep -v "^${TAG}$" || true; } | head -1) if [ -n "$PREV_TAG" ]; then RANGE="${PREV_TAG}..${TAG}" else diff --git a/Makefile b/Makefile index 8ebfd9c..0b33838 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ APP := pgtidy CMD := ./cmd/pgtidy DIST := dist -.PHONY: build test lint vet fmt clean release snapshot vscode-compile vscode-package +.PHONY: build test lint vet fmt clean release release-version snapshot vscode-compile vscode-package ## build: compile binary for the current platform build: @@ -32,9 +32,22 @@ clean: snapshot: goreleaser release --snapshot --clean -## release: tag and publish a GitHub release (requires GITHUB_TOKEN + goreleaser) +## release: auto-increment patch version, update package files, tag, and push release: - goreleaser release --clean + @CURRENT=$$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0"); \ + MAJOR=$$(echo $$CURRENT | sed 's/v\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'); \ + MINOR=$$(echo $$CURRENT | sed 's/v\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'); \ + PATCH=$$(echo $$CURRENT | sed 's/v\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'); \ + NEXT="v$$MAJOR.$$MINOR.$$((PATCH + 1))"; \ + PKGVER="$$MAJOR.$$MINOR.$$((PATCH + 1))"; \ + echo "Current: $$CURRENT → Next: $$NEXT"; \ + sed -i "s/^pkgver=.*/pkgver=$$PKGVER/" linux/arch/PKGBUILD; \ + sed -i "s/^Version:.*/Version: $$PKGVER/" linux/centos/pgtidy.spec; \ + git add linux/arch/PKGBUILD linux/centos/pgtidy.spec; \ + git commit -m "chore(release): bump version to $$PKGVER"; \ + git tag -a "$$NEXT" -m "Release $$NEXT"; \ + git push origin HEAD "$$NEXT"; \ + echo "Pushed $$NEXT — release workflow triggered" ## vscode-compile: compile the VSCode extension TypeScript vscode-compile: