-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
executable file
·110 lines (95 loc) · 2.51 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
MAKE = make
# These are the locations of the directories we'll use
TARGET_DIR = target
#
# Project Versioning
#
.PHONY: version/major
version/major:
$(info Updating major version and adding CHANGELOG entry...)
@ lein vcs assert-committed
@ lein change version leiningen.release/bump-version major
@ lein change version leiningen.release/bump-version release
@ lein sealog bump major
@ lein pom
@ lein export-specs
.PHONY: version/minor
version/minor:
$(info Updating minor version and adding CHANGELOG entry...)
@ lein vcs assert-committed
@ lein change version leiningen.release/bump-version minor
@ lein change version leiningen.release/bump-version release
@ lein sealog bump minor
@ lein pom
@ lein export-specs
.PHONY: version/patch
version/patch:
$(info Updating patch version and adding CHANGELOG entry...)
@ lein vcs assert-committed
@ lein change version leiningen.release/bump-version patch
@ lein change version leiningen.release/bump-version release
@ lein sealog bump patch
@ lein pom
@ lein export-specs
.PHONY: changelog/render
changelog/render:
$(info Rendering CHANGELOG and generated files...)
@ lein sealog render
@ lein export-specs
@ lein export-schema
#
# Testing
#
.PHONY: tests/all
tests/all: tests/clojure tests/clojurescript tests/json-schema
.PHONY: tests/clojure
tests/clojure:
$(info Running Clojure tests...)
@ lein test
.PHONY: tests/clojurescript
tests/clojurescript:
$(info Running ClojureScript tests...)
@ lein clean
@ lein cljsbuild once test
@ lein doo once
.PHONY: tests/json-schema
tests/json-schema:
$(info Running JSON Schema tests...)
@ npm run json-schema/validate/equipment
@ npm run json-schema/validate/fermentables
@ npm run json-schema/validate/hops
@ npm run json-schema/validate/mash
@ npm run json-schema/validate/miscs
@ npm run json-schema/validate/recipes
@ npm run json-schema/validate/styles
@ npm run json-schema/validate/waters
@ npm run json-schema/validate/yeasts
#
# Code Formatting
#
.PHONY: format/all
format/all: format/markdown format/clojure
.PHONY: format/markdown
format/markdown:
$(info Updating Markdown formatting...)
@ npm run update-toc
.PHONY: format/clojure
format/clojure:
$(info Updating Clojure formatting...)
@ lein cljstyle
@ lein bouncer fix
#
# Code Linting
#
.PHONY: lint/all
lint/all: lint/clojure lint/markdown
.PHONY: lint/clojure
lint/clojure:
$(info Linting Clojure...)
@ lein clj-kondo
@ lein bouncer check
@ lein sealog check
.PHONY: lint/markdown
lint/markdown:
$(info Linting Markdown...)
@ npm run markdownlint