forked from kickingvegas/casual-calc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
84 lines (69 loc) · 2.4 KB
/
Makefile
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
##
# Copyright 2024 Charles Y. Choi
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
## Requirements
# - Python 3.11+
# - GNU awk 5.3+
# - Python semver
# - Bash
CASUAL_LISP_DIR=./lisp
CASUAL_EL=$(CASUAL_LISP_DIR)/casual.el
TIMESTAMP := $(shell /bin/date "+%Y%m%d_%H%M%S")
CASUAL_VERSION := $(shell ./scripts/read-version.sh $(CASUAL_EL))
# BUMP_LEVEL: major|minor|patch|prerelease|build
BUMP_LEVEL=patch
CASUAL_VERSION_BUMP := $(shell python -m semver bump $(BUMP_LEVEL) $(CASUAL_VERSION))
.PHONY: tests \
create-pr \
bump \
checkout-development \
checkout-main \
sync-development-with-main \
create-merge-development-branch \
create-pr \
create-release-pr \
create-release-tag
## Run test regression
tests:
$(MAKE) -C tests tests
## Bump Patch Version
bump: checkout-development
sed -i 's/;; Version: $(CASUAL_VERSION)/;; Version: $(CASUAL_VERSION_BUMP)/' $(CASUAL_EL)
git commit -m 'Bump version to $(CASUAL_VERSION_BUMP)' $(CASUAL_EL)
git push
checkout-development:
git checkout development
git branch --set-upstream-to=origin/development development
git fetch origin --prune
git pull
checkout-main:
git checkout main
git branch --set-upstream-to=origin/main main
git fetch origin --prune
git pull
sync-development-with-main: checkout-main checkout-development
git merge main
create-merge-development-branch: checkout-development
git checkout -b merge-development-to-main-$(TIMESTAMP)
git push --set-upstream origin merge-development-to-main-$(TIMESTAMP)
## Create GitHub pull request for development
create-pr:
gh pr create --base development --fill
## Create GitHub pull request for release
create-release-pr: create-merge-development-branch bump
gh pr create --base main \
--title "Merge development to main $(TIMESTAMP)" \
--fill-verbose
create-release-tag: checkout-main
git tag $(CASUAL_VERSION)
git push origin $(CASUAL_VERSION)