3
3
# To manually manage the CircleCI configuration for this project, remove the .circleci/template.sh file.
4
4
5
5
version : 2.1
6
+
7
+ aliases :
8
+ - &check-no-files-changed
9
+ run :
10
+ name : Check that no git-tracked files were modified
11
+ command : |
12
+ FILES_MODIFIED="$(git status --porcelain)"
13
+ if [[ -n "$FILES_MODIFIED" ]]; then
14
+ echo "The following files were modified or added during the build process:"
15
+ echo "$FILES_MODIFIED"
16
+ echo "This will likely prevent successful publishing. Please run the build locally and include these changes in your pull request. (If new files are created, consider whether they should be checked in or .gitignored.)"
17
+ exit 1
18
+ fi
19
+
6
20
jobs :
7
- compile :
21
+
22
+ check :
8
23
docker : [{ image: 'cimg/openjdk:11.0.10-node' }]
9
24
resource_class : large
10
25
environment :
11
26
CIRCLE_TEST_REPORTS : /home/circleci/junit
12
27
CIRCLE_ARTIFACTS : /home/circleci/artifacts
13
28
GRADLE_OPTS : -Dorg.gradle.workers.max=2 -Dorg.gradle.jvmargs='-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
14
- _JAVA_OPTIONS : -XX:ActiveProcessorCount=4 -XX:MaxRAM=8g -XX:ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
29
+ _JAVA_OPTIONS : -XX:ActiveProcessorCount=4 -XX:MaxRAM=8g -XX:+CrashOnOutOfMemoryError -XX: ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
15
30
steps :
16
31
- checkout
17
32
- run :
@@ -38,133 +53,59 @@ jobs:
38
53
39
54
echo "Detected tag build, deleting all tags except '$CIRCLE_TAG' which point to HEAD: [${TAGS_TO_DELETE/$'\n'/,}]"
40
55
echo "$TAGS_TO_DELETE" | while read -r TAG; do git tag -d "$TAG" 1>/dev/null; done
41
- - restore_cache : { key: 'gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
42
- - restore_cache : { key: 'compile-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
43
- - run : ./gradlew --parallel --stacktrace classes testClasses -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
44
- - save_cache :
45
- key : ' gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}'
46
- paths : [ ~/.gradle/wrapper ]
47
- - save_cache :
48
- key : ' compile-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
49
- paths : [ ~/.gradle/caches ]
50
- - store_test_results : { path: ~/junit }
51
- - store_artifacts : { path: ~/artifacts }
56
+ - restore_cache : { key: 'gradle-wrapper-v1-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
57
+ - restore_cache : { key: 'check-gradle-cache-v1-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
58
+ - run :
59
+ name : check-setup
60
+ command : |
61
+ if [ -x .circleci/check-setup.sh ]; then
62
+ echo "Running check-setup" && .circleci/check-setup.sh && echo "check-setup complete"
63
+ fi
64
+ - run : ./gradlew --parallel --stacktrace --continue --max-workers=2 check -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
65
+ - *check-no-files-changed
52
66
- persist_to_workspace :
53
67
root : /home/circleci
54
- paths : [ project, .gradle/init.gradle ]
55
-
56
- check :
57
- docker : [{ image: 'cimg/openjdk:11.0.10-node' }]
58
- resource_class : medium
59
- environment :
60
- CIRCLE_TEST_REPORTS : /home/circleci/junit
61
- CIRCLE_ARTIFACTS : /home/circleci/artifacts
62
- GRADLE_OPTS : -Dorg.gradle.workers.max=1 -Dorg.gradle.jvmargs='-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
63
- _JAVA_OPTIONS : -XX:ActiveProcessorCount=2 -XX:MaxRAM=4g -XX:ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
64
- steps :
65
- - attach_workspace : { at: /home/circleci }
66
- - restore_cache : { key: 'gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
67
- - restore_cache : { key: 'check-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
68
- - run : ./gradlew --parallel --stacktrace --continue check idea -x test -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
68
+ paths : [ project ]
69
69
- save_cache :
70
- key : ' check-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
71
- paths : [ ~/.gradle/caches ]
72
- - run :
73
- command : mkdir -p ~/junit && find . -type f -regex ".*/build/.*TEST.*xml" -exec cp --parents {} ~/junit/ \;
74
- when : always
75
- - store_test_results : { path: ~/junit }
76
- - store_artifacts : { path: ~/artifacts }
77
-
78
- unit-test :
79
- docker : [{ image: 'cimg/openjdk:11.0.10-node' }]
80
- resource_class : large
81
- environment :
82
- CIRCLE_TEST_REPORTS : /home/circleci/junit
83
- CIRCLE_ARTIFACTS : /home/circleci/artifacts
84
- GRADLE_OPTS : -Dorg.gradle.workers.max=2 -Dorg.gradle.jvmargs='-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
85
- _JAVA_OPTIONS : -XX:ActiveProcessorCount=4 -XX:MaxRAM=8g -XX:ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
86
- steps :
87
- - attach_workspace : { at: /home/circleci }
88
- - restore_cache : { key: 'gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
89
- - restore_cache : { key: 'unit-test-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
90
- - run : ./gradlew --parallel --stacktrace --continue --max-workers=2 test -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
91
- - save_cache :
92
- key : ' unit-test-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
93
- paths : [ ~/.gradle/caches ]
94
- - run :
95
- command : mkdir -p ~/junit && find . -type f -regex ".*/build/.*TEST.*xml" -exec cp --parents {} ~/junit/ \;
96
- when : always
97
- - store_test_results : { path: ~/junit }
98
- - store_artifacts : { path: ~/artifacts }
99
-
100
- unit-test-11 :
101
- docker : [{ image: 'cimg/openjdk:11.0.10-node' }]
102
- resource_class : large
103
- environment :
104
- CIRCLE_TEST_REPORTS : /home/circleci/junit
105
- CIRCLE_ARTIFACTS : /home/circleci/artifacts
106
- GRADLE_OPTS : -Dorg.gradle.workers.max=2 -Dorg.gradle.jvmargs='-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
107
- _JAVA_OPTIONS : -XX:ActiveProcessorCount=4 -XX:MaxRAM=8g -XX:ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
108
- steps :
109
- - checkout
110
- - restore_cache : { key: 'gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
111
- - restore_cache : { key: 'unit-test-11-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
112
- - run : ./gradlew --parallel --stacktrace --continue test -Pcom.palantir.baseline-error-prone.disable -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
70
+ key : ' gradle-wrapper-v1-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}'
71
+ paths : [ ~/.gradle/wrapper ]
113
72
- save_cache :
114
- key : ' unit-test-11- gradle-cache-v2 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
73
+ key : ' check- gradle-cache-v1 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
115
74
paths : [ ~/.gradle/caches ]
116
75
- run :
117
76
command : mkdir -p ~/junit && find . -type f -regex ".*/build/.*TEST.*xml" -exec cp --parents {} ~/junit/ \;
118
77
when : always
119
78
- store_test_results : { path: ~/junit }
120
79
- store_artifacts : { path: ~/artifacts }
121
80
122
-
123
81
build :
124
- machine : { docker_layer_caching: true }
82
+ machine :
83
+ docker_layer_caching : true
125
84
environment :
126
85
CIRCLE_TEST_REPORTS : /home/circleci/junit
127
86
CIRCLE_ARTIFACTS : /home/circleci/artifacts
128
87
_JAVA_OPTIONS : -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false -Xmx8192m
129
88
JAVA_HOME : /opt/java11
130
89
steps :
131
- - attach_workspace : { at: /home/circleci }
132
- - restore_cache : { key: 'gradle-wrapper-v2 -{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
133
- - restore_cache : { key: 'build-gradle-cache-v2 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
90
+ - checkout
91
+ - restore_cache : { key: 'gradle-wrapper-v1 -{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
92
+ - restore_cache : { key: 'build-gradle-cache-v1 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
134
93
- run :
135
94
name : Install Java 11
136
95
command : |
137
96
sudo mkdir -p /opt/java && cd /opt/java && sudo chown -R circleci:circleci .
138
- curl https://cdn.azul.com/zulu/bin/zulu11.54.23 -ca-jdk11.0.14 -linux_x64.tar.gz | tar -xzf - -C /opt/java
97
+ curl https://cdn.azul.com/zulu/bin/zulu11.70.15 -ca-jdk11.0.22 -linux_x64.tar.gz | tar -xzf - -C /opt/java
139
98
sudo ln -s /opt/java/zulu*/ /opt/java11
140
- - run : ./gradlew --parallel --stacktrace build -x test -x check -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
141
- - save_cache :
142
- key : ' build-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
143
- paths : [ ~/.gradle/caches ]
144
99
- run :
145
- command : mkdir -p ~/junit && find . -type f -regex ".*/build/.*TEST.*xml" -exec cp --parents {} ~/junit/ \; || true
146
- when : always
147
- - store_test_results : { path: ~/junit }
148
- - store_artifacts : { path: ~/artifacts }
149
-
150
- build-11 :
151
- machine : { docker_layer_caching: true }
152
- environment :
153
- CIRCLE_TEST_REPORTS : /home/circleci/junit
154
- CIRCLE_ARTIFACTS : /home/circleci/artifacts
155
- JAVA_HOME : /opt/java11
156
- _JAVA_OPTIONS : -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false -Xmx8192m
157
- steps :
158
- - attach_workspace : { at: /home/circleci }
159
- - restore_cache : { key: 'gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
160
- - restore_cache : { key: 'build-11-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
161
- - run : |
162
- sudo mkdir -p /opt/java && cd /opt/java && sudo chown -R circleci:circleci .
163
- curl https://cdn.azul.com/zulu/bin/zulu11.54.23-ca-jdk11.0.14-linux_x64.tar.gz | tar -xzf - -C /opt/java
164
- sudo ln -s /opt/java/zulu*/ /opt/java11
165
- - run : ./gradlew --parallel --stacktrace build -x test -x check -Pcom.palantir.baseline-error-prone.disable -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
100
+ name : build-setup
101
+ command : |
102
+ if [ -x .circleci/build-setup.sh ]; then
103
+ echo "Running build-setup" && .circleci/build-setup.sh && echo "build-setup complete"
104
+ fi
105
+ - run : ./gradlew --parallel --stacktrace build -x test -x check -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
106
+ - *check-no-files-changed
166
107
- save_cache :
167
- key : ' build-11- gradle-cache-v2 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
108
+ key : ' build-gradle-cache-v1 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
168
109
paths : [ ~/.gradle/caches ]
169
110
- run :
170
111
command : mkdir -p ~/junit && find . -type f -regex ".*/build/.*TEST.*xml" -exec cp --parents {} ~/junit/ \; || true
@@ -173,26 +114,10 @@ jobs:
173
114
- store_artifacts : { path: ~/artifacts }
174
115
175
116
trial-publish :
176
- docker : [{ image: 'cimg/openjdk:11.0.10-node' }]
177
- resource_class : medium
178
- environment :
179
- CIRCLE_TEST_REPORTS : /home/circleci/junit
180
- CIRCLE_ARTIFACTS : /home/circleci/artifacts
181
- GRADLE_OPTS : -Dorg.gradle.workers.max=1 -Dorg.gradle.jvmargs='-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
182
- _JAVA_OPTIONS : -XX:ActiveProcessorCount=2 -XX:MaxRAM=4g -XX:ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
117
+ docker : [ { image: 'busybox:1.36.1@sha256:6d9ac9237a84afe1516540f40a0fafdc86859b2141954b4d643af7066d598b74' } ]
118
+ resource_class : small
183
119
steps :
184
- - attach_workspace : { at: /home/circleci }
185
- - restore_cache : { key: 'gradle-wrapper-v2-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
186
- - restore_cache : { key: 'trial-publish-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
187
- - run : ./gradlew --stacktrace publishToMavenLocal -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
188
- - run :
189
- command : git status --porcelain
190
- when : always
191
- - save_cache :
192
- key : ' trial-publish-gradle-cache-v2-{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
193
- paths : [ ~/.gradle/caches ]
194
- - store_test_results : { path: ~/junit }
195
- - store_artifacts : { path: ~/artifacts }
120
+ - run : { command: echo "Dummy job so repos that require the `trial-publish` job to merge PRs still see a passing `trial-publish`. Should be replaced by a `circle-all` job at some point." }
196
121
197
122
publish :
198
123
docker : [{ image: 'cimg/openjdk:11.0.10-node' }]
@@ -201,18 +126,18 @@ jobs:
201
126
CIRCLE_TEST_REPORTS : /home/circleci/junit
202
127
CIRCLE_ARTIFACTS : /home/circleci/artifacts
203
128
GRADLE_OPTS : -Dorg.gradle.workers.max=1 -Dorg.gradle.jvmargs='-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
204
- _JAVA_OPTIONS : -XX:ActiveProcessorCount=2 -XX:MaxRAM=4g -XX:ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
129
+ _JAVA_OPTIONS : -XX:ActiveProcessorCount=2 -XX:MaxRAM=4g -XX:+CrashOnOutOfMemoryError -XX: ErrorFile=/home/circleci/artifacts/hs_err_pid%p.log -XX:HeapDumpPath=/home/circleci/artifacts
205
130
steps :
206
131
- attach_workspace : { at: /home/circleci }
207
- - restore_cache : { key: 'gradle-wrapper-v2 -{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
208
- - restore_cache : { key: 'publish-gradle-cache-v2 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
132
+ - restore_cache : { key: 'gradle-wrapper-v1 -{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}' }
133
+ - restore_cache : { key: 'publish-gradle-cache-v1 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}' }
209
134
- deploy :
210
135
command : ./gradlew --parallel --stacktrace --continue publish -Porg.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_15_HOME,JAVA_17_HOME,JAVA_HOME
211
136
- run :
212
137
command : git status --porcelain
213
138
when : always
214
139
- save_cache :
215
- key : ' publish-gradle-cache-v2 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
140
+ key : ' publish-gradle-cache-v1 -{{ checksum "versions.props" }}-{{ checksum "build.gradle" }}'
216
141
paths : [ ~/.gradle/caches ]
217
142
- store_test_results : { path: ~/junit }
218
143
- store_artifacts : { path: ~/artifacts }
@@ -222,32 +147,15 @@ workflows:
222
147
version : 2
223
148
build :
224
149
jobs :
225
- - compile :
226
- filters : { tags: { only: /.*/ } }
227
-
228
- - unit-test :
229
- requires : [ compile ]
230
- filters : { tags: { only: /.*/ } }
231
-
232
- - unit-test-11 :
233
- filters : { tags: { only: /.*/ } }
234
-
235
150
- check :
236
- requires : [ compile ]
237
151
filters : { tags: { only: /.*/ } }
238
152
239
153
- build :
240
- requires : [ compile ]
241
- filters : { tags: { only: /.*/ } }
242
-
243
- - build-11 :
244
- requires : [ compile ]
245
154
filters : { tags: { only: /.*/ } }
246
155
247
156
- trial-publish :
248
- requires : [ compile ]
249
157
filters : { branches: { ignore: master } }
250
158
251
159
- publish :
252
- requires : [ unit-test, unit-test-11, check, build, build-11, trial-publish ]
160
+ requires : [ check, trial-publish, build ]
253
161
filters : { tags: { only: /.*/ }, branches: { only: master } }
0 commit comments