Skip to content

Commit d7e0f35

Browse files
committed
feat: Adding auto bumping
Signed-off-by: Akis Maziotis <[email protected]>
1 parent 3ee9050 commit d7e0f35

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

Makefile

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ GO_LDFLAGS += -X "github.com/mattermost/${APP_NAME}/internal/v
8888
GO_LDFLAGS += -X "github.com/mattermost/${APP_NAME}/internal/version.gitTreeState=$(GIT_TREESTATE)"
8989
GO_LDFLAGS += -X "github.com/mattermost/${APP_NAME}/internal/version.buildDate=$(BUILD_DATE)"
9090

91-
9291
# Architectures to build for
9392
GO_BUILD_PLATFORMS ?= linux-amd64 linux-arm64 freebsd-amd64
9493
GO_BUILD_PLATFORMS_ARTIFACTS = $(foreach cmd,$(addprefix go-build/,${APP_NAME}),$(addprefix $(cmd)-,$(GO_BUILD_PLATFORMS)))
@@ -138,6 +137,14 @@ AT_0 := @
138137
AT_1 :=
139138
AT = $(AT_$(VERBOSE))
140139

140+
# ====================================================================================
141+
# Used for semver bumping
142+
CURRENT_VERSION := $(shell git describe --abbrev=0 --tags)
143+
VERSION_PARTS := $(subst ., ,$(subst v,,$(CURRENT_VERSION)))
144+
MAJOR := $(word 1,$(VERSION_PARTS))
145+
MINOR := $(word 2,$(VERSION_PARTS))
146+
PATCH := $(word 3,$(VERSION_PARTS))
147+
141148
# ====================================================================================
142149
# Targets
143150

@@ -164,6 +171,32 @@ lint: go-lint docker-lint ## to lint
164171
.PHONY: test
165172
test: go-test ## to test
166173

174+
175+
.PHONY: patch minor major
176+
177+
patch: ## to bump patch version (semver)
178+
@$(eval PATCH := $(shell echo $$(($(PATCH)+1))))
179+
@$(INFO) Bumping $(APP_NAME) to Patch version $(MAJOR).$(MINOR).$(PATCH)
180+
git tag -s -a $(MAJOR).$(MINOR).$(PATCH) -m "Bumping $(APP_NAME) to Patch version $(MAJOR).$(MINOR).$(PATCH)"
181+
git push --tags
182+
@$(OK) Bumping $(APP_NAME) to Patch version $(MAJOR).$(MINOR).$(PATCH)
183+
184+
minor: ## to bump minor version (semver)
185+
@$(eval MINOR := $(shell echo $$(($(MINOR)+1))))
186+
@$(INFO) Bumping $(APP_NAME) to Minor version $(MAJOR).$(MINOR).0
187+
git tag -s -a $(MAJOR).$(MINOR).0 -m "Bumping $(APP_NAME) to Minor version $(MAJOR).$(MINOR).0"
188+
git push --tags
189+
@$(OK) Bumping $(APP_NAME) to Minor version $(MAJOR).$(MINOR).0
190+
191+
major: ## to bump major version (semver)
192+
$(eval MAJOR := $(shell echo $$(($(MAJOR)+1))))
193+
$(eval MINOR := 0)
194+
$(eval PATCH := 0)
195+
@$(INFO) Bumping $(APP_NAME) to Major version $(MAJOR).$(MINOR).$(PATCH)
196+
git tag -s -a $(MAJOR).$(MINOR).$(PATCH) -m "Bumping $(APP_NAME) to Major version $(MAJOR).$(MINOR).$(PATCH)"
197+
git push --tags
198+
@$(OK) Bumping $(APP_NAME) to Major version $(MAJOR).$(MINOR).$(PATCH)
199+
167200
package-software: ## to package the binary
168201
@$(INFO) Packaging
169202
$(AT) for file in $(GO_OUT_BIN_DIR)/mattermost-push-proxy-*; do \

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
11
# Mattermost Push Proxy ![CircleCI branch](https://img.shields.io/circleci/project/github/mattermost/mattermost-push-proxy/master.svg)
22

33
See https://developers.mattermost.com/contribute/mobile/push-notifications/service/
4+
5+
6+
# How to Release
7+
8+
To trigger a release of Mattermost Push-Proxy, follow these steps:
9+
10+
1. **For Patch Release:** Run the following command:
11+
```
12+
make patch
13+
```
14+
This will release a patch change.
15+
16+
2. **For Minor Release:** Run the following command:
17+
```
18+
make minor
19+
```
20+
This will release a minor change.
21+
22+
3. **For Major Release:** Run the following command:
23+
```
24+
make major
25+
```
26+
This will release a major change.

0 commit comments

Comments
 (0)