@@ -194,11 +194,91 @@ lazy val scala213Settings = Seq(
194
194
scalaVersion := scala213
195
195
)
196
196
197
+ val preRelease = " pre-release"
198
+ val travisScalaVersion = sys.env.get(" TRAVIS_SCALA_VERSION" ).flatMap(Version .parse)
199
+ val releaseVersion = sys.env.get(" TRAVIS_TAG" ).flatMap(Version .parse)
200
+ val isScalaJs = sys.env.get(" SCALAJS_VERSION" ).nonEmpty
201
+ val isScalafix = sys.env.get(" TEST_SCALAFIX" ).nonEmpty
202
+ val isRelease = releaseVersion.nonEmpty
203
+
204
+
205
+ val releaseCredentials =
206
+ if (isRelease) {
207
+ def env (key : String ): String = Option (System .getenv(key)).getOrElse(" " )
208
+
209
+ Seq (
210
+ pgpPassphrase := Some (env(" PGP_PASSPHRASE" ).toArray),
211
+ pgpPublicRing := file(" admin/pubring.asc" ),
212
+ pgpSecretRing := file(" admin/secring.asc" ),
213
+ credentials += Credentials (" Sonatype Nexus Repository Manager" , " oss.sonatype.org" , env(" SONA_USER" ), env(" SONA_PASS" ))
214
+ )
215
+ } else {
216
+ Seq ()
217
+ }
218
+
219
+ inThisBuild(releaseCredentials)
220
+
221
+
197
222
// required by sbt-scala-module
198
223
inThisBuild(Seq (
199
224
crossScalaVersions := Seq (scala211, scala212, scala213),
200
- commands += Command .command(" noop" ) { state =>
201
- println(" noop" )
225
+ commands += Command .command(preRelease) { state =>
226
+ // Show Compat version, Scala version, and Java Version
227
+ val jvmVersion = Version .parse(sys.props(" java.specification.version" )).get.minor
228
+ val tagVersion = releaseVersion.get
229
+ println(s " Releasing $tagVersion with Scala ${travisScalaVersion.get} on Java version $jvmVersion. " )
230
+
231
+ // Copy pgp stuff
232
+ " admin/pre-release.sh" ! state.globalLogging.full
233
+
202
234
state
235
+ },
236
+ commands += Command .command(" ci" ) { state =>
237
+ val platformSuffix = if (isScalaJs) " JS" else " "
238
+
239
+ val compatProject =
240
+ " compat" + travisScalaVersion.get.binary + platformSuffix
241
+
242
+ val testProjectPrefix =
243
+ if (isScalafix) {
244
+ " scalafix-tests"
245
+ } else {
246
+ compatProject
247
+ }
248
+
249
+ val projectPrefix =
250
+ if (isScalafix) {
251
+ " scalafix-rules"
252
+ } else {
253
+ compatProject
254
+ }
255
+
256
+ val setPublishVersion = releaseVersion.map(" set every version := " + _).toList
257
+
258
+ val publishTask =
259
+ if (releaseVersion.nonEmpty) {
260
+ List (
261
+ preRelease,
262
+ s " $projectPrefix/publish-signed "
263
+ )
264
+ } else {
265
+ Nil
266
+ }
267
+
268
+ val toRun = Seq (
269
+ setPublishVersion,
270
+ List (s " $projectPrefix/clean " ),
271
+ List (s " $testProjectPrefix/test " ),
272
+ List (s " $projectPrefix/publishLocal " ),
273
+ publishTask
274
+ ).flatten
275
+
276
+ println(" ---------" )
277
+ println(" Running CI: " )
278
+ toRun.foreach(println)
279
+ println(" ---------" )
280
+
281
+
282
+ toRun ::: state
203
283
}
204
- ))
284
+ ))
0 commit comments