1212# the License.
1313#
1414
15- # our job defaults
16- defaults : &defaults
17- working_directory : ~/feign
18- environment :
19- # Customize the JVM maximum heap limit
20- MAVEN_OPTS : -Xmx3200m
21- steps :
22- - checkout
23- - restore_cache :
24- keys :
25- - feign-dependencies-{{ checksum "pom.xml" }}
26- - feign-dependencies-
27- - run : mvn dependency:resolve-plugins go-offline:resolve-dependencies install -DskipTests=true
28- - save_cache :
29- paths :
30- - ~/.m2
31- key : feign-dependencies-{{ checksum "pom.xml" }}
32- - run : mvn -o test
33-
34- version : 2.1
15+ # common executors
16+ executors :
17+ java :
18+ parameters :
19+ version :
20+ description : ' jdk version to use'
21+ default : ' 8'
22+ type : string
23+ docker :
24+ - image : circleci/openjdk:<<parameters.version>>
3525
26+ # common commands
3627commands :
28+ resolve-dependencies :
29+ description : ' Download and prepare all dependencies'
30+ steps :
31+ - run :
32+ name : ' Resolving Dependencies'
33+ command : |
34+ mvn dependency:resolve-plugins go-offline:resolve-dependencies -DskipTests=true
35+ verify-formatting :
36+ steps :
37+ - run :
38+ name : ' Verify formatting'
39+ command : |
40+ scripts/no-git-changes.sh
3741 configure-gpg :
3842 steps :
3943 - run :
@@ -43,51 +47,180 @@ commands:
4347 nexus-deploy :
4448 steps :
4549 - run :
46- name : ' Deploy to Sonatype'
50+ name : ' Deploy Core Modules Sonatype'
4751 command : |
4852 mvn -nsu -s .circleci/settings.xml -P release -pl -:feign-benchmark -DskipTests=true deploy
53+ nexus-deploy-jdk11 :
54+ steps :
55+ - run :
56+ name : ' Deploy JDK 11 Modules to Sonatype'
57+ command : |
58+ mvn -B -nsu -s ./travis/settings.xml -P release,java11 -pl :feign-java11 -DskipTests=true deploy
4959
50- jobs :
51- jdk8 :
52- docker :
53- - image : circleci/openjdk:8
54- << : *defaults
60+ # our job defaults
61+ defaults : &defaults
62+ working_directory : ~/feign
63+ environment :
64+ # Customize the JVM maximum heap limit
65+ MAVEN_OPTS : -Xmx3200m
5566
56- jdk11 :
57- docker :
58- - image : circleci/openjdk:11
59- << : *defaults
67+ # branch filters
68+ master-only : &master-only
69+ branches :
70+ only : master
6071
61- jdk14 :
62- docker :
63- - image : circleci/openjdk:14-buster
72+ tags-only : &tags-only
73+ branches :
74+ ignore : /.*/
75+ tags :
76+ only : /.*/
77+
78+ all-branches : &all-branches
79+ branches :
80+ ignore : master
81+ tags :
82+ ignore : /.*/
83+
84+ version : 2.1
85+
86+ jobs :
87+ test :
88+ parameters :
89+ jdk :
90+ description : ' jdk version to use'
91+ default : ' 8'
92+ type : string
93+ executor :
94+ name : java
95+ version : <<parameters.jdk>>
6496 << : *defaults
97+ steps :
98+ - checkout
99+ - restore_cache :
100+ keys :
101+ - feign-dependencies-{{ checksum "pom.xml" }}
102+ - feign-dependencies-
103+ - resolve-dependencies
104+ - save_cache :
105+ paths :
106+ - ~/.m2
107+ key : feign-dependencies-{{ checksum "pom.xml" }}
108+ - run :
109+ name : ' Test'
110+ command : |
111+ mvn -o test
112+ - verify-formatting
65113
66114 deploy :
67- docker :
68- - image : circleci/openjdk:8
115+ parameters :
116+ jdk :
117+ description : ' jdk version to use'
118+ default : ' 8'
119+ type : string
120+ executor :
121+ name : java
122+ version : <<parameters.jdk>>
123+ << : *defaults
69124 steps :
70125 - checkout
71126 - restore_cache :
72127 keys :
73128 - feign-dependencies-{{ checksum "pom.xml" }}
74129 - feign-dependencies-
130+ - resolve-dependencies
75131 - configure-gpg
76132 - nexus-deploy
77133
134+ deploy-jdk11 :
135+ parameters :
136+ jdk :
137+ description : ' jdk version to use'
138+ default : ' 11'
139+ type : string
140+ executor :
141+ name : java
142+ version : <<parameters.jdk>>
143+ << : *defaults
144+ steps :
145+ - checkout
146+ - restore_cache :
147+ keys :
148+ - feign-dependencies-{{ checksum "pom.xml" }}
149+ - feign-dependencies-
150+ - resolve-dependencies
151+ - configure-gpg
152+ - nexus-deploy-jdk11
153+
78154workflows :
79155 version : 2
80156 build :
81157 jobs :
82- - jdk8
83- - jdk11
84- - jdk14
158+ - test :
159+ jdk : ' 8'
160+ name : ' jdk 8'
161+ filters :
162+ << : *all-branches
163+ - test :
164+ jdk : ' 11'
165+ name : ' jdk 11'
166+ filters :
167+ << : *all-branches
168+ - test :
169+ jdk : ' 14-buster'
170+ name : ' jdk 14'
171+ filters :
172+ << : *all-branches
173+
174+ snapshot :
175+ jobs :
176+ - test :
177+ jdk : ' 8'
178+ name : ' jdk 8'
179+ filters :
180+ << : *master-only
181+ - test :
182+ jdk : ' 11'
183+ name : ' jdk 11'
184+ filters :
185+ << : *master-only
186+ - test :
187+ jdk : ' 14-buster'
188+ name : ' jdk 14'
189+ filters :
190+ << : *master-only
191+ - deploy :
192+ jdk : ' 8'
193+ name : ' deploy snapshot'
194+ requires :
195+ - ' jdk 8'
196+ - ' jdk 11'
197+ - ' jdk 14'
198+ context : Sonatype
199+ filters :
200+ << : *master-only
201+ - deploy-jdk11 :
202+ jdk : ' 11'
203+ name : ' deploy jdk11 snapshot modules'
204+ requires :
205+ - ' jdk 11'
206+ - ' deploy snapshot'
207+ context : Sonatype
208+ filters :
209+ << : *master-only
210+
211+ release :
212+ jobs :
85213 - deploy :
214+ jdk : ' 8'
215+ name : ' release to maven central'
216+ context : Sonatype
217+ filters :
218+ << : *tags-only
219+ - deploy-jdk11 :
220+ jdk : ' 11'
221+ name : ' release jdk11 artifacts to maven central'
86222 requires :
87- - jdk8
88- - jdk11
89- - jdk14
223+ - ' release to maven central'
90224 context : Sonatype
91225 filters :
92- branches :
93- only : master
226+ << : *tags-only
0 commit comments