tag: @test ! -z "$(TAG)" || { echo "node-modules: no tag specified. nothing to do..."; exit 1; } @echo node-modules tag=$(TAG) @git fetch --all --tags --prune @test -z `git --no-pager tag -l $(TAG)` || echo tag already exists @test -z `git --no-pager tag -l $(TAG)` && echo tag $(TAG) does not exist. adding... || : @test -z `git --no-pager tag -l $(TAG)` && git tag $(TAG) || : @git push origin --tags removetag: @test ! -z "$(TAG)" || { echo "no tag specified. nothing to do..."; exit 1; } git tag -d $(TAG) git push origin :refs/tags/$(TAG) start-release: @test ! -z "$(RELEASE)" || { echo "no release specified. nothing to do..."; exit 1; } git flow init -d git fetch --prune git checkout develop git pull git flow release start $(RELEASE) git flow release publish $(RELEASE) finish-release: @test ! -z "$(RELEASE)" || { echo "no release specified. nothing to do..."; exit 1; } git checkout develop git pull git checkout master git pull git checkout release/$(RELEASE) git pull git flow release finish $(RELEASE) git push origin --delete release/$(RELEASE) || : git push origin --tags # # checks: @git fetch --all --tags --prune @test ! -z `git --no-pager tag --list | grep $(RELEASE)` || { echo -e "\033[0;31msrc1: tag $(RELEASE) was not added\033[0m"; exit 1; } test ! -z `git --no-pager branch --contains tags/$(RELEASE) | grep master` abort-release: @test ! -z "$(RELEASE)" || { echo "no release specified. nothing to do..."; exit 1; } @test `git rev-parse --abbrev-ref HEAD` != release/$(RELEASE) || git checkout develop git pull git remote update origin --prune git branch -d release/$(RELEASE) || echo no branch git push origin --delete release/$(RELEASE) || echo no branch .PHONY: tag removetag release finish_release