@@ -8,37 +8,55 @@ version: 2.1
8
8
9
9
# Default settings for executors
10
10
11
+ env_defaults : &env_defaults
12
+ LEIN_ROOT : " true" # we intended to run lein as root
13
+ # JVM_OPTS:
14
+ # - limit the maximum heap size to prevent out of memory errors
15
+ # - print stacktraces to console
16
+ JVM_OPTS : >
17
+ -Xmx3200m
18
+ -Dclojure.main.report=stderr
19
+
11
20
defaults : &defaults
12
21
working_directory : ~/repo
13
- environment :
14
- LEIN_ROOT : " true" # we intended to run lein as root
15
- # JVM_OPTS:
16
- # - limit the maximum heap size to prevent out of memory errors
17
- # - print stacktraces to console
18
- JVM_OPTS : >
19
- -Xmx3200m
20
- -Dclojure.main.report=stderr
21
22
22
23
# Runners for various OpenJDKs versions.
23
24
# NOTE: JDK 16 can be discarded after a few months, given it's not LTS.
24
25
25
26
executors :
27
+ # JDK 8 is preferred for deployments (https://github.com/benedekfazekas/mranderson/issues/57)
28
+ # Parallelism is disabled, at least for now (https://github.com/benedekfazekas/mranderson/issues/56)
29
+ openjdk8_deploy :
30
+ docker :
31
+ - image : circleci/clojure:openjdk-8-lein-2.9.1-node
32
+ << : *defaults
33
+ environment :
34
+ LEIN_JVM_OPTS : -Dmranderson.internal.no-parallelism=true
35
+ << : *env_defaults
26
36
openjdk8 :
27
37
docker :
28
38
- image : circleci/clojure:openjdk-8-lein-2.9.1-node
29
39
<< : *defaults
40
+ environment :
41
+ << : *env_defaults
30
42
openjdk11 :
31
43
docker :
32
44
- image : circleci/clojure:openjdk-11-lein-2.9.1-node
33
45
<< : *defaults
46
+ environment :
47
+ << : *env_defaults
34
48
openjdk16 :
35
49
docker :
36
50
- image : circleci/clojure:openjdk-16-lein-2.9.5-buster-node
37
51
<< : *defaults
52
+ environment :
53
+ << : *env_defaults
38
54
openjdk17 :
39
55
docker :
40
56
- image : circleci/clojure:openjdk-17-lein-2.9.5-buster-node
41
57
<< : *defaults
58
+ environment :
59
+ << : *env_defaults
42
60
43
61
# Runs a given set of steps, with some standard pre- and post-
44
62
# steps, including restoring of cache, saving of cache.
@@ -111,6 +129,14 @@ jobs:
111
129
cache_version : " 1.10"
112
130
steps : << parameters.steps >>
113
131
132
+ deploy :
133
+ executor : openjdk8_deploy
134
+ steps :
135
+ - checkout
136
+ - run :
137
+ name : Deploy
138
+ command : |
139
+ lein with-profile -user,+deploy run -m deploy-release make deploy
114
140
115
141
test_code :
116
142
description : |
@@ -125,6 +151,7 @@ jobs:
125
151
executor : << parameters.jdk_version >>
126
152
environment :
127
153
VERSION : << parameters.clojure_version >>
154
+ PROJECT_VERSION : 999.99.9
128
155
steps :
129
156
- checkout
130
157
- with_cache :
@@ -165,71 +192,22 @@ workflows:
165
192
ci-test-matrix :
166
193
jobs :
167
194
- test_code :
168
- name : Java 8, Clojure 1.8
169
- clojure_version : " 1.8"
170
- jdk_version : openjdk8
171
- - test_code :
172
- name : Java 8, Clojure 1.9
173
- clojure_version : " 1.9"
174
- jdk_version : openjdk8
175
- - test_code :
176
- name : Java 8, Clojure 1.10
177
- clojure_version : " 1.10"
178
- jdk_version : openjdk8
179
- - test_code :
180
- name : Java 8, Clojure master
181
- clojure_version : " master"
182
- jdk_version : openjdk8
183
- - test_code :
184
- name : Java 11, Clojure 1.8
185
- clojure_version : " 1.8"
186
- jdk_version : openjdk11
187
- - test_code :
188
- name : Java 11, Clojure 1.9
189
- clojure_version : " 1.9"
190
- jdk_version : openjdk11
191
- - test_code :
192
- name : Java 11, Clojure 1.10
193
- clojure_version : " 1.10"
194
- jdk_version : openjdk11
195
- - test_code :
196
- name : Java 11, Clojure master
197
- clojure_version : " master"
198
- jdk_version : openjdk11
199
- - test_code :
200
- name : Java 16, Clojure 1.8
201
- clojure_version : " 1.8"
202
- jdk_version : openjdk16
203
- - test_code :
204
- name : Java 16, Clojure 1.9
205
- clojure_version : " 1.9"
206
- jdk_version : openjdk16
207
- - test_code :
208
- name : Java 16, Clojure 1.10
209
- clojure_version : " 1.10"
210
- jdk_version : openjdk16
211
- - test_code :
212
- name : Java 16, Clojure master
213
- clojure_version : " master"
214
- jdk_version : openjdk16
215
- - test_code :
216
- name : Java 17, Clojure 1.8
217
- clojure_version : " 1.8"
218
- jdk_version : openjdk17
219
- - test_code :
220
- name : Java 17, Clojure 1.9
221
- clojure_version : " 1.9"
222
- jdk_version : openjdk17
223
- - test_code :
224
- name : Java 17, Clojure 1.10
225
- clojure_version : " 1.10"
226
- jdk_version : openjdk17
227
- - test_code :
228
- name : Java 17, Clojure master
229
- clojure_version : " master"
230
- jdk_version : openjdk17
195
+ matrix :
196
+ parameters :
197
+ clojure_version : ["1.8", "1.9", "1.10", "master"]
198
+ jdk_version : [openjdk8, openjdk11, openjdk16, openjdk17]
199
+ filters :
200
+ branches :
201
+ only : /.*/
202
+ tags :
203
+ only : /^v\d+\.\d+\.\d+(-alpha\d+)?$/
231
204
- util_job :
232
205
name : Code Linting
206
+ filters :
207
+ branches :
208
+ only : /.*/
209
+ tags :
210
+ only : /^v\d+\.\d+\.\d+(-alpha\d+)?$/
233
211
steps :
234
212
- run :
235
213
name : Running cljfmt
@@ -243,3 +221,12 @@ workflows:
243
221
name : Running Eastwood
244
222
command : |
245
223
make eastwood
224
+ - deploy :
225
+ requires :
226
+ - test_code
227
+ - " Code Linting"
228
+ filters :
229
+ branches :
230
+ ignore : /.*/
231
+ tags :
232
+ only : /^v\d+\.\d+\.\d+(-alpha\d+)?$/
0 commit comments