-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
61 lines (56 loc) · 2.08 KB
/
Makefile
File metadata and controls
61 lines (56 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# ---------------------------------------------------------------------------
# SIMPLIFIED BUMP WORKFLOW
# ---------------------------------------------------------------------------
# Extract current version from cavlite script
VERSION := $(shell grep 'VERSION=' cavlite | cut -d '"' -f 2)
.PHONY: bump version test
bump:
@echo "------------------------------------------------"
@echo "Current Version: $(VERSION)"
@echo "------------------------------------------------"
@# STEP 1: ASK BUMP TYPE AND UPDATE FILE
@echo "Select bump type:"
@echo "1) Patch (default) [0.0.X -> 0.0.X+1]"
@echo "2) Minor [0.X.0 -> 0.X+1.0]"
@echo "3) Major [X.0.0 -> X+1.0.0]"
@read -p "Enter choice [1]: " bump_type; \
bump_type=$${bump_type:-1}; \
\
OLD_VER="$(VERSION)"; \
if [ "$$bump_type" = "1" ]; then \
NEW_VER=$$(echo $$OLD_VER | awk -F. '{$$NF = $$NF + 1;} 1' OFS=. ); \
elif [ "$$bump_type" = "2" ]; then \
NEW_VER=$$(echo $$OLD_VER | awk -F. '{$$(NF-1) = $$(NF-1) + 1; $$NF = 0;} 1' OFS=. ); \
elif [ "$$bump_type" = "3" ]; then \
NEW_VER=$$(echo $$OLD_VER | awk -F. '{$$1 = $$1 + 1; $$2 = 0; $$3 = 0;} 1' OFS=. ); \
else \
echo "Invalid option. Exiting."; exit 1; \
fi; \
\
# Update version in cavlite file \
sed -i 's/VERSION=".*"/VERSION="'"$$NEW_VER"'"/' cavlite; \
echo "Updated cavlite to version $$NEW_VER"; \
echo ""; \
\
# STEP 2 & 3: ASK TO COMMIT, PUSH, AND TAG \
read -p "Do you want to 'git add .', commit 'bumped version to v$$NEW_VER', and push? [Y/n] " push_ans; \
push_ans=$${push_ans:-Y}; \
if [ "$$push_ans" = "Y" ] || [ "$$push_ans" = "y" ]; then \
echo "Staging all changes..."; \
git add .; \
echo "Committing..."; \
git commit -m "bumped version to v$$NEW_VER"; \
echo "Pushing to main..."; \
git push origin HEAD; \
echo "Creating and Pushing Tag v$$NEW_VER..."; \
git tag v$$NEW_VER; \
git push origin v$$NEW_VER; \
echo "Done! v$$NEW_VER released."; \
else \
echo "Changes staged in cavlite file but NOT committed. process aborted."; \
fi
version:
@echo $(VERSION)
test:
@chmod +x test/test-cavlite
@./test/test-cavlite