1
1
SHELL := env ORCHID_DIAGNOSE=$(ORCHID_DIAGNOSE ) $(SHELL )
2
2
ORCHID_DIAGNOSE ?= false
3
-
4
- deploy-docs :
3
+ .DEFAULT_GOAL := help
4
+
5
+ # https://stackoverflow.com/a/10858332
6
+ # Check that given variables are set and all have non-empty values,
7
+ # die with an error otherwise.
8
+ #
9
+ # Params:
10
+ # 1. Variable name(s) to test.
11
+ # 2. (optional) Error message to print.
12
+ check_defined = \
13
+ $(strip $(foreach 1,$1, \
14
+ $(call __check_defined,$1,$(strip $(value 2) ) ) ) )
15
+ __check_defined = \
16
+ $(if $(value $1) ,, \
17
+ $(error Undefined $1$(if $2, ($2) ) ) )
18
+
19
+ .PHONY : deploy-docs
20
+ deploy-docs : # # deploys documentation with orchid
5
21
sed -i ' s/^\s\sbaseUrl:\shttp:\/\/localhost:8080/ baseUrl: https:\/\/serpro69.github.io\/kotlin-faker/' ./docs/src/orchid/resources/config.yml
6
22
sed -i ' s/^\s\shomePageOnly:.*/#/' ./docs/src/orchid/resources/config.yml
7
23
./gradlew :docs:orchidDeploy -PorchidEnvironment=prod -PorchidDiagnose=$(ORCHID_DIAGNOSE )
8
24
git checkout ./docs/src/orchid/resources/config.yml
9
25
10
- snapshot-in-pre-release :
26
+ .PHONY : snapshot-in-pre-release
27
+ snapshot-in-pre-release : # # publishes next snapshot in current pre-release version
11
28
./gradlew clean test integrationTest \
12
29
printVersion \
13
30
nativeImage \
14
31
publishToSonatype \
15
32
-PpromoteToRelease \
16
33
--info
17
34
18
- snapshot-major :
35
+ .PHONY : snapshot-major
36
+ snapshot-major : # # publishes next snapshot with a major version bump
19
37
./gradlew clean test integrationTest \
20
38
printVersion \
21
39
nativeImage \
22
40
publishToSonatype \
23
41
-PbumpComponent=major \
24
42
--info
25
43
26
- snapshot-minor :
44
+ .PHONY : snapshot-minor
45
+ snapshot-minor : # # publishes next snapshot with a minor version bump
27
46
./gradlew clean test integrationTest \
28
47
printVersion \
29
48
nativeImage \
30
49
publishToSonatype \
31
50
-PbumpComponent=minor \
32
51
--info
33
52
34
- snapshot-patch :
53
+ .PHONY : snapshot-patch
54
+ snapshot-patch : # # publishes next snapshot with a patch version bump
35
55
./gradlew clean test integrationTest \
36
56
printVersion \
37
57
nativeImage \
38
58
publishToSonatype \
39
59
-PbumpComponent=patch \
40
60
--info
41
61
42
- pre-release-major :
62
+ .PHONY : pre-release-major
63
+ pre-release-major : # # publishes next pre-release version with a major version bump
43
64
./gradlew clean test integrationTest \
44
65
tag \
45
66
nativeImage \
@@ -50,7 +71,8 @@ pre-release-major:
50
71
51
72
git push origin --tags
52
73
53
- pre-release-minor :
74
+ .PHONY : pre-release-minor
75
+ pre-release-minor : # # publishes next pre-release with a minor version bump
54
76
./gradlew clean test integrationTest \
55
77
tag \
56
78
nativeImage \
@@ -61,7 +83,8 @@ pre-release-minor:
61
83
62
84
git push origin --tags
63
85
64
- pre-release-patch :
86
+ .PHONY : pre-release-patch
87
+ pre-release-patch : # # publishes next pre-release with a patch version bump
65
88
./gradlew clean test integrationTest \
66
89
tag \
67
90
nativeImage \
@@ -72,7 +95,8 @@ pre-release-patch:
72
95
73
96
git push origin --tags
74
97
75
- next-pre-release :
98
+ .PHONY : next-pre-release
99
+ next-pre-release : # # publishes next pre-release version
76
100
./gradlew clean test integrationTest \
77
101
tag \
78
102
nativeImage \
@@ -83,7 +107,8 @@ next-pre-release:
83
107
84
108
git push origin --tags
85
109
86
- promote-to-release :
110
+ .PHONY : promote-to-release
111
+ promote-to-release : # # publishes next release from the current pre-release version
87
112
./gradlew clean test integrationTest \
88
113
tag \
89
114
nativeImage \
@@ -94,7 +119,8 @@ promote-to-release:
94
119
95
120
git push origin --tags
96
121
97
- release-major :
122
+ .PHONY : release-major
123
+ release-major : # # publishes next major release version
98
124
./gradlew clean test integrationTest \
99
125
tag \
100
126
nativeImage \
@@ -105,7 +131,8 @@ release-major:
105
131
106
132
git push origin --tags
107
133
108
- release-minor :
134
+ .PHONY : release-minor
135
+ release-minor : # # publishes next minor release version
109
136
./gradlew clean test integrationTest \
110
137
tag \
111
138
nativeImage \
@@ -116,7 +143,8 @@ release-minor:
116
143
117
144
git push origin --tags
118
145
119
- release-patch :
146
+ .PHONY : release-patch
147
+ release-patch : # # publishes next patch release version
120
148
./gradlew clean test integrationTest \
121
149
tag \
122
150
nativeImage \
@@ -126,3 +154,21 @@ release-patch:
126
154
--info
127
155
128
156
git push origin --tags
157
+
158
+ .PHONY : release
159
+ release : # # publishes the next release with a specified VERSION
160
+ @:$(call check_defined, VERSION, semantic version string - 'X.Y.Z(-rc.\d+) ? ' )
161
+
162
+ ./gradlew clean test integrationTest \
163
+ nativeImage \
164
+ publishToSonatype \
165
+ closeSonatypeStagingRepository \
166
+ -Pversion=$(VERSION) \
167
+ --info
168
+
169
+ git tag v$(VERSION)
170
+ git push origin --tags
171
+
172
+ .PHONY : help
173
+ help : # # Displays this help
174
+ @grep -E ' ^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST ) | sort | awk ' BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
0 commit comments