@@ -2,22 +2,22 @@ name: build
22
33on :
44 pull_request :
5- branches : [ 'series/*' ]
5+ branches : ['series/*', 'main' ]
66 push :
7- branches : [ 'series/*' ]
8- tags : [ "v[0-9]+*" ]
7+ branches : ['series/*', 'main' ]
8+ tags : ["v[0-9]+*"]
99
1010jobs :
1111 jvm-tests :
1212 name : JVM / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
13- runs-on : ubuntu-latest
13+ runs-on : ubuntu-22.04
1414 strategy :
1515 fail-fast : false
1616 matrix :
17- java : [ 11, 17, 21, 25 ]
17+ java : [ 17, 21, 25 ]
1818 # WARN: build.sbt depends on this key path, as scalaVersion and
1919 # crossScalaVersions is determined from it
20- scala : [ 2.13.18, 3.3.7 ]
20+ scala : [ 2.13.18, 3.8.2 ]
2121
2222 env :
2323 CI : true
2626 - uses : actions/checkout@v4
2727 - uses : actions/setup-java@v4
2828 with :
29+ java-version : " ${{ matrix.java }}"
2930 distribution : temurin
30- java-version : ${{ matrix.java }}
3131 - uses : sbt/setup-sbt@v1
3232
3333 - name : Cache ivy2
@@ -56,17 +56,24 @@ jobs:
5656 PLATFORM : ${{ matrix.java }}
5757 SBT_COMMAND : ci-jvm
5858
59+ - name : sbt reactiveTests/test
60+ run : ./.github/scripts/exec-sbt-command
61+ env :
62+ SCALA_VERSION : ${{ matrix.scala }}
63+ PLATFORM : ${{ matrix.java }}
64+ SBT_COMMAND : " reactiveTests/test"
65+
5966 js-tests :
6067 name : JS / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
61- runs-on : ubuntu-latest
68+ runs-on : ubuntu-22.04
6269 strategy :
6370 fail-fast : false
6471 matrix :
6572 # WARN: build.sbt depends on this key path, as scalaVersion and
6673 # crossScalaVersions is determined from it
6774 include :
68- - { java: 11 , scala: 2.13.18 }
69- - { java: 11 , scala: 3.3.7 }
75+ - { java: 17 , scala: 2.13.18 }
76+ - { java: 17 , scala: 3.8.2 }
7077
7178 env :
7279 CI : true
7582 - uses : actions/checkout@v4
7683 - uses : actions/setup-java@v4
7784 with :
85+ java-version : " ${{ matrix.java }}"
7886 distribution : temurin
79- java-version : ${{ matrix.java }}
8087 - uses : sbt/setup-sbt@v1
8188
8289 - name : Cache ivy2
@@ -101,7 +108,7 @@ jobs:
101108 - name : Setup NodeJS
102109 uses : actions/setup-node@v4
103110 with :
104- node-version : 14
111+ node-version : 20
105112
106113 - name : sbt ci-js
107114 run : |
@@ -113,20 +120,24 @@ jobs:
113120
114121 mima :
115122 name : Mima / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
116- runs-on : ubuntu-latest
123+ runs-on : ubuntu-22.04
124+
125+ env :
126+ CI : true
127+
117128 strategy :
118129 fail-fast : false
119130 matrix :
120131 include :
121- - { java: 11 , scala: 2.13.18 }
122- - { java: 11 , scala: 3.3.7 }
132+ - { java: 17 , scala: 2.13.18 }
133+ - { java: 17 , scala: 3.8.2 }
123134
124135 steps :
125136 - uses : actions/checkout@v4
126137 - uses : actions/setup-java@v4
127138 with :
139+ java-version : " ${{ matrix.java }}"
128140 distribution : temurin
129- java-version : ${{ matrix.java }}
130141 - uses : sbt/setup-sbt@v1
131142
132143 - name : Cache ivy2
@@ -155,23 +166,74 @@ jobs:
155166 SCALA_VERSION : ${{ matrix.scala }}
156167 SBT_COMMAND : mimaReportBinaryIssues
157168
169+ scalafmt :
170+ name : Scalafmt / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
171+ runs-on : ubuntu-22.04
172+
173+ env :
174+ CI : true
175+
176+ strategy :
177+ fail-fast : false
178+ matrix :
179+ include :
180+ - { java: 17, scala: 2.13.18 }
181+ - { java: 17, scala: 3.8.2 }
182+
183+ steps :
184+ - uses : actions/checkout@v4
185+ - uses : actions/setup-java@v4
186+ with :
187+ java-version : " ${{ matrix.java }}"
188+ distribution : temurin
189+ - uses : sbt/setup-sbt@v1
190+
191+ - name : Cache ivy2
192+ uses : actions/cache@v4
193+ with :
194+ path : ~/.ivy2/cache
195+ key : ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
196+
197+ - name : Cache coursier (linux)
198+ if : contains(runner.os, 'linux')
199+ uses : actions/cache@v4
200+ with :
201+ path : ~/.cache/coursier/v1
202+ key : ${{ runner.os }}-sbt-coursier-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
203+
204+ - name : Cache sbt
205+ uses : actions/cache@v4
206+ with :
207+ path : ~/.sbt
208+ key : ${{ runner.os }}-sbt-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
209+
210+ - name : sbt scalafmtCheckAll
211+ run : |
212+ ./.github/scripts/exec-sbt-command
213+ env :
214+ SCALA_VERSION : ${{ matrix.scala }}
215+ SBT_COMMAND : " scalafmtCheckAll scalafmtSbtCheck"
216+
158217 unidoc :
159218 name : Unidoc / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
160- runs-on : ubuntu-latest
219+ runs-on : ubuntu-22.04
220+
221+ env :
222+ CI : true
223+
161224 strategy :
162225 fail-fast : false
163226 matrix :
164227 include :
165- - { java: 11, scala: 2.13.18 }
166- # TODO: enable this after it works!
167- # - { java: 11, scala: 3.3.5 }
228+ - { java: 17, scala: 2.13.18 }
229+ - { java: 17, scala: 3.8.2 }
168230
169231 steps :
170232 - uses : actions/checkout@v4
171233 - uses : actions/setup-java@v4
172234 with :
235+ java-version : " ${{ matrix.java }}"
173236 distribution : temurin
174- java-version : ${{ matrix.java }}
175237 - uses : sbt/setup-sbt@v1
176238
177239 - name : Cache ivy2
@@ -202,28 +264,33 @@ jobs:
202264
203265 all_tests :
204266 name : All Tests
205- needs : [ jvm-tests, js-tests, mima, unidoc ]
206- runs-on : ubuntu-latest
267+ if : always()
268+ needs : [ jvm-tests, js-tests, mima, scalafmt, unidoc ]
269+ runs-on : ubuntu-22.04
207270 steps :
208- - name : Ack
209- run : |
210- echo "All done."
271+ - name : Validate required tests
272+ uses : re-actors/alls-green@release/v1
273+ with :
274+ jobs : ${{ toJSON(needs) }}
211275
212276 publish :
213277 name : Publish to Sonatype
214- if : github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/series/3.x')
278+ if : github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/series/3.x-avs ')
215279 needs : [ all_tests ]
216280
217- runs-on : ubuntu-latest
281+ env :
282+ CI : true
283+
284+ runs-on : ubuntu-22.04
218285 steps :
219286 - uses : actions/checkout@v4
220287 with :
221288 fetch-depth : 100
222289
223290 - uses : actions/setup-java@v4
224291 with :
292+ java-version : 17
225293 distribution : temurin
226- java-version : 11
227294 - uses : sbt/setup-sbt@v1
228295
229296 - name : Install GnuPG2
0 commit comments