Skip to content

Commit 880cc53

Browse files
authored
Merge pull request #252 from lrytz/ci-release
New scala-module-plugin with sbt-ci-release / travisci / dynver / header
2 parents 7e9fca1 + d82c050 commit 880cc53

File tree

9 files changed

+27
-222
lines changed

9 files changed

+27
-222
lines changed

.travis.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,12 @@ scala:
66
- 2.13.0
77

88
env:
9-
global:
10-
11-
# PGP_PASSPHRASE
12-
- secure: "rjetmX9HXoN/scxTCBFCHIUDFryY0Yd29sR6EBrW/2tCOILO09RTCcJB0kPn2YMZ9en8ChTtOpqGF9133f6wZ7/ZINSUt1tNwnbgDlhGbwJW2WFTUEmL7ScdqmgRGa294aVuAfrvJnr+dN92it6ibAB8nThgsjq0LnZREJsKwQ77vvEeATEKutuPLGlrHrmqL7/XCjb2uYz9Xh0sSpyQlKOGt5EN7JzM/Bzyju+RYS9BvnLVV86fey/UWO1DNDa4MU5835akevqvtwN7CpCFxFKgbfc+40bAh7Xc59UnkxP+Lcs2KxJx9heS6RJJiNEx99r59LL2JALyN++yOAS97HEfii4Yc3OK9VRZCNQFW4gNm3VtGNW4EC+LOX/9cUiUNg2J65nY0UF2d6R3vsqiCKaK6C0cm+jIs3fgDHFlB+MiHC/ZECaoPvwzm1AxQMIWyoFFqXuHQk3Ef137G0x1ejneUoGD/PqMbiEAX64+VVvOxgOI2/jyt4hFTEk6JiWVahmk+7oFAsLH1n9J1Y3csMvmo9S0S/Ey9D3bR07hggc8pj/CJPj9gFSfpGEVhroc37T/VlP23EVJgpteovERyeJGC3P7wVWvi1pNNW6iOVENzY1GkHlHkJUI7Q4B+eIW2mh5wi6JyC/DM2lO4z3M2KQkNqQgzIBdm5p/4hezkkA="
13-
# SONA_USER
14-
- secure: "oStf8s+LwXcmVENMnWU970OAImwXLV2E6FNXSLE7zdr4YL70cWVsDXDeAs0LSEmiOXTtHulmcIwUt6fCqZ1aiTxUxGX2avy0DSM9nCrQit7IXfwX8V9iK9/3t/SXo1g8yEfxyug+OK6CKOlLeA9HY/TJjO6fkYCsR1NrD8PLpgGtgSwS1GGjifbdahkQyyyivxROJ2UaRysm8PJ1X1966FoQoXKLU4HEztO48y3ZIlItZGwVv/1FJ18AniU2oCnV6XQVM+OB/j+IxNENzLBvd54/YjVtRRa22KTlC8j/NXo8Vq/f0ZhLjNLzYIEB1ER+2T2dthpek+Y8eMR5RdHrFj4Xp2kB04K70ZIL6pw2BDpqeiabjm1E3X6c+flj4pWR5p8uXguV7JmhYgl9d2UEqP7ZTzSbgh2S2WG9EjyK4C2L9jimgBP+Nih2yeW8GuURKgjQ5zrg3+7vxXqBjNN4PmTLpGiQ5shK1kZCpzdgfTl3LfUO4Uitg2Vl8yFC3Z9d3Fo5oV84DhL20pMIx7CtIcMX4b5QHArbUyICYFOvuz+8qP67kTPLVoErNmKWjqpp64VarqfoVbbe4NwRgGuNSMPR1nHb1LjloXv1CiNs9AocvnTknhV1T9I4F4XWi/J6mEwUbVW7GppzqszO6cAgcPLbqp92U8I+rexPjiieCZ0="
15-
# SONA_PASS
16-
- secure: "m0Fw/eH7RXJJoBTfqV6CMd7kaIN2pRPnQPNXJGb546UjqYAlYTkfjvVrWpsgpisRBptI1FEHn24yGbgAHjIes/4un/O62K66I0BffL8PbdeHeNcDjSrTesKEqage2mQfGOiqccVsmkgiKeXNYL8tPZRmPQQ3XZ97mS1SXWlqAJSMW6HfNnvqW14Gdb/snR6I8lQ2o5tRnLerWPnI96pp+xjZca2lD4XDvH2wLJXXLmYY61e23ZYzZMepxBxhGa7js3YTYzCWNrOfBLjFJ5nwRxbjR0WMuz5z5Gdy715WtguKS4Fffd/GJHycLROBU9LCAQDMTxMFvqzFqVFpfq0BuTmmkXFXj+a7dO+ABG0RfoDfoMjn7pHwyHNCZyMMuR1HCjMkbGFwC+Zme2UAYNivtcsuWWeMuypwjyqjfFfNns4FHJ0SXFtC/6+OJkAuUdbEJKReYWKWEsP5SnCH/8PLlc+uUl3tjQkFLc1sOAyx9cTWyBErwuJXhgTrjT9AWvO+fvhcm8z/p5+aaF/U9GIrzPqziX4hGjzc/WC+rsFJSiBDlFQl7br+m8WWs7/wuXqPGXmhf0BNQViDi7fZndDHcY3p3T0An05d/IMKjCUrgLDlJi6VYs9XN7S8ay6MH+XTwIsJGSxtGjfEO4rHGIjtR2GRr8TqdNfnpsI3ucbia1Y="
17-
matrix:
18-
- SCALAJS_VERSION= ADOPTOPENJDK=8
19-
- SCALAJS_VERSION=0.6.28 ADOPTOPENJDK=8
20-
- SCALAJS_VERSION=1.0.0-M8 ADOPTOPENJDK=8
21-
- SCALAJS_VERSION= ADOPTOPENJDK=11
22-
- SCALAJS_VERSION=0.6.28 ADOPTOPENJDK=11
23-
- SCALAJS_VERSION=1.0.0-M8 ADOPTOPENJDK=11
9+
- SCALAJS_VERSION= ADOPTOPENJDK=8
10+
- SCALAJS_VERSION=0.6.28 ADOPTOPENJDK=8
11+
- SCALAJS_VERSION=1.0.0-M8 ADOPTOPENJDK=8
12+
- SCALAJS_VERSION= ADOPTOPENJDK=11
13+
- SCALAJS_VERSION=0.6.28 ADOPTOPENJDK=11
14+
- SCALAJS_VERSION=1.0.0-M8 ADOPTOPENJDK=11
2415

2516
matrix:
2617

@@ -53,7 +44,7 @@ matrix:
5344

5445
before_install:
5546
# adding $HOME/.sdkman to cache would create an empty directory, which interferes with the initial installation
56-
- "[[ -d $HOME/.sdkman/bin/ ]] || rm -rf $HOME/.sdkman/"
47+
- "[[ -d $HOME/.sdkman/bin ]] || rm -rf $HOME/.sdkman/"
5748
- curl -sL https://get.sdkman.io | bash
5849
- echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config
5950
- source "$HOME/.sdkman/bin/sdkman-init.sh"
@@ -62,7 +53,7 @@ install:
6253
- sdk install java $(sdk list java | grep -o "$ADOPTOPENJDK\.[0-9\.]*hs-adpt" | head -1)
6354
- unset JAVA_HOME
6455
- java -Xmx32m -version
65-
- javac -J-Xmx32m -version
56+
- git fetch --tags # get all tags for sbt-dynver
6657

6758
before_script:
6859
- admin/checkCLA.sh
@@ -76,6 +67,7 @@ cache:
7667
- "$HOME/.sbt/boot/scala*"
7768
- "$HOME/.sbt/launchers"
7869
- "$HOME/.ivy2/cache"
70+
- "$HOME/.cache/coursier"
7971
- "$HOME/.sdkman"
8072

8173
before_cache:

admin/README.md

Lines changed: 0 additions & 70 deletions
This file was deleted.

admin/encryptEnvVars.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

admin/genKeyPair.sh

Lines changed: 0 additions & 42 deletions
This file was deleted.

admin/pre-release.sh

Lines changed: 0 additions & 6 deletions
This file was deleted.

admin/pubring.asc

Lines changed: 0 additions & 18 deletions
This file was deleted.

admin/secring.asc.enc

-1.84 KB
Binary file not shown.

build.sbt

Lines changed: 17 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import ScalaModulePlugin._
2-
import sbtcrossproject.{crossProject, CrossType}
31
import _root_.scalafix.sbt.BuildInfo.{scalafixVersion, scala212 => scalafixScala212}
4-
import sys.process._
2+
import com.lightbend.tools.scalamoduleplugin.ScalaModulePlugin._
3+
4+
import scala.sys.process._
55

66
lazy val commonSettings = Seq(
77
headerLicense := Some(HeaderLicense.Custom(s"""|Scala (https://www.scala-lang.org)
@@ -14,11 +14,9 @@ lazy val commonSettings = Seq(
1414
|See the NOTICE file distributed with this work for
1515
|additional information regarding copyright ownership.
1616
|""".stripMargin)),
17-
mimaPreviousVersion := Some("2.1.1"),
17+
scalaModuleMimaPreviousVersion := Some("2.1.1"),
1818
)
1919

20-
version in ThisBuild := "2.1.3-SNAPSHOT"
21-
2220
lazy val root = project
2321
.in(file("."))
2422
.settings(commonSettings)
@@ -52,16 +50,6 @@ lazy val scala211 = "2.11.12"
5250
lazy val scala212 = "2.12.8"
5351
lazy val scala213 = "2.13.0"
5452

55-
scalaVersionsByJvm in ThisBuild := {
56-
val all = List(scala211, scala212, scala213)
57-
// Map[JvmMajorVersion, List[(ScalaVersion, UseForPublishing)]]
58-
Map(
59-
8 -> all.map(_ -> true),
60-
11 -> all.map(_ -> false),
61-
12 -> all.map(_ -> false)
62-
)
63-
}
64-
6553
/** Create an OSGi version range for standard Scala versioning
6654
* schemes that describes binary compatible versions. */
6755
def osgiVersionRange(version: String, requireMicro: Boolean = false): String =
@@ -289,54 +277,21 @@ lazy val dontPublish = Seq(
289277
packagedArtifacts := Map.empty,
290278
publish := {},
291279
publishLocal := {},
292-
mimaPreviousVersion := None,
280+
scalaModuleMimaPreviousVersion := None,
293281
)
294282

295-
val preRelease = "preRelease"
296283
val travisScalaVersion = sys.env.get("TRAVIS_SCALA_VERSION").flatMap(Version.parse)
297284
val releaseVersion = sys.env.get("TRAVIS_TAG").flatMap(Version.parse)
298285
val isScalaJs = sys.env.get("SCALAJS_VERSION").map(_.nonEmpty).getOrElse(false)
299286
val isScalaNative = sys.env.get("SCALANATIVE_VERSION").map(_.nonEmpty).getOrElse(false)
300287
val isScalafix = sys.env.get("TEST_SCALAFIX").nonEmpty
301288
val isScalafmt = sys.env.get("TEST_SCALAFMT").nonEmpty
302289
val isBinaryCompat = sys.env.get("TEST_BINARY_COMPAT").nonEmpty
303-
val isRelease = releaseVersion.nonEmpty
304-
305-
val releaseCredentials =
306-
if (isRelease) {
307-
def env(key: String): String = Option(System.getenv(key)).getOrElse("")
308-
309-
Seq(
310-
pgpPassphrase := Some(env("PGP_PASSPHRASE").toArray),
311-
pgpPublicRing := file("admin/pubring.asc"),
312-
pgpSecretRing := file("admin/secring.asc"),
313-
credentials += Credentials("Sonatype Nexus Repository Manager",
314-
"oss.sonatype.org",
315-
env("SONA_USER"),
316-
env("SONA_PASS"))
317-
)
318-
} else {
319-
Seq()
320-
}
321-
322-
inThisBuild(releaseCredentials)
290+
val jdkVersion = sys.env.get("ADOPTOPENJDK").map(_.toInt)
323291

324292
// required by sbt-scala-module
325293
inThisBuild(
326294
Seq(
327-
commands += Command.command(preRelease) { state =>
328-
// Show Compat version, Scala version, and Java Version
329-
val jvmVersion = Version.parse(sys.props("java.specification.version")).get.minor
330-
releaseVersion match {
331-
case Some(tagVersion) =>
332-
println(
333-
s"Releasing $tagVersion with Scala ${travisScalaVersion.get} on Java version $jvmVersion.")
334-
// Copy pgp stuff
335-
"admin/pre-release.sh" ! state.globalLogging.full
336-
case None =>
337-
}
338-
state
339-
},
340295
commands += Command.command("scalafmt-test") { state =>
341296
Seq("admin/scalafmt.sh", "--test") ! state.globalLogging.full
342297
state
@@ -388,10 +343,18 @@ inThisBuild(
388343
releaseVersion.map("set every version := \"" + _ + "\"").toList
389344

390345
val publishTask =
391-
if (releaseVersion.nonEmpty && !isBinaryCompat) {
346+
if (releaseVersion.nonEmpty && !isBinaryCompat && jdkVersion == Some(8)) {
347+
// we cannot run "ci-release" because that reads the `CI_RELEASE` / `CI_SONATYPE_RELEASE`
348+
// env vars, which we cannot modify from java (easily). so we inline what this command does.
349+
CiReleasePlugin.setupGpg()
392350
List(
393-
preRelease,
394-
s"$projectPrefix/publishSigned"
351+
// work around https://github.com/olafurpg/sbt-ci-release/issues/64
352+
"set pgpSecretRing := pgpSecretRing.value",
353+
"set pgpPublicRing := pgpPublicRing.value",
354+
s"$projectPrefix/publishSigned",
355+
"sonatypePrepare",
356+
"sonatypeBundleUpload",
357+
"sonatypeClose",
395358
)
396359
} else {
397360
Nil

project/plugins.sbt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJ
88
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % crossVer)
99
addSbtPlugin("org.scala-native" % "sbt-scala-native" % scalaNativeVersion)
1010
addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % crossVer)
11-
addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "2.0.0")
11+
addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "2.1.1")
1212
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.6")
1313
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.9.0")
14-
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.2-1")
15-
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.2.0")

0 commit comments

Comments
 (0)