From d80686c7cdec9f97e339653369521bad335e9fa0 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 9 Apr 2017 10:51:54 +0800 Subject: [PATCH] [Makefile] Introduce _ensure-current-version to ensure version tags --- Makefile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 44d6bb9..ad307d7 100644 --- a/Makefile +++ b/Makefile @@ -55,6 +55,14 @@ ifndef TAG $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) endif +# Ensures there are version tags in repository +.PHONY: _ensure-current-version + +_ensure-current-version: +ifeq ($(shell git tag),$(printf '')) + @git fetch --tags +endif + # Ensures that the git workspace is clean. .PHONY: _ensure-clean _ensure-clean: @@ -62,7 +70,7 @@ _ensure-clean: # Makes a release; invoke with `make TAG= release`. .PHONY: release -release: _ensure-tag _ensure-clean +release: _ensure-tag _ensure-clean _ensure-current-version @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ if printf "$$new_ver" | grep -q '^[0-9]'; then \