From 21831832c687baac1f3ef451011dce81b53f2c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Mass=C3=A9?= Date: Thu, 5 Jul 2018 17:43:31 +0200 Subject: [PATCH] Run sbt with jdk8 and test with the jdk from the build matrix (fix #77) --- .travis.yml | 22 +++++++++++----- admin/build.sh | 2 +- build.sbt | 19 +++++++++++++- .../scala/collection/JdkVersionTest.scala | 25 +++++++++++++++++++ 4 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 compat/src/test/scala/test/scala/collection/JdkVersionTest.scala diff --git a/.travis.yml b/.travis.yml index deadaf32..938f39c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,14 @@ scala: - 2.12.6 - 2.13.0-M4 jdk: - - openjdk7 + - openjdk6 - oraclejdk8 env: global: + # force jdk 8 for sbt due to sonatype droping support for jdk6 on https (TLS 1.0) + # https://stackoverflow.com/questions/50824789/why-am-i-getting-received-fatal-alert-protocol-version-or-peer-not-authentic/50824799#50824799 + - JAVA_HOME: /usr/lib/jvm/java-8-oracle + # PGP_PASSPHRASE - 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=" # SONA_USER @@ -23,10 +27,10 @@ env: matrix: exclude: # > 2.12 requires jdk8 - - jdk: openjdk7 + - jdk: openjdk6 scala: 2.12.6 - - jdk: openjdk7 + - jdk: openjdk6 scala: 2.13.0-M4 # ? @@ -43,11 +47,17 @@ matrix: jdk: oraclejdk8 env: TEST_SCALAFIX=true + - addons: + apt: + packages: + - openjdk-6-jdk + jdk: openjdk6 + # | jdk | scala | scala target | scala target version | scalafix test | # | ----------- | --------- | ------------ | -------------------- |---------------| -# | openjdk7 | 2.11.12 | jvm | | | -# | openjdk7 | 2.11.12 | js | 0.6.23 | | -# | openjdk7 | 2.11.12 | js | 1.0.0-M3 | | +# | openjdk6 | 2.11.12 | jvm | | | +# | openjdk6 | 2.11.12 | js | 0.6.23 | | +# | openjdk6 | 2.11.12 | js | 1.0.0-M3 | | # | oraclejdk8 | 2.12.6 | jvm | | | # | oraclejdk8 | 2.12.6 | js | 0.6.23 | | # | oraclejdk8 | 2.12.6 | js | 1.0.0-M3 | | diff --git a/admin/build.sh b/admin/build.sh index 52a555dd..7993b08e 100755 --- a/admin/build.sh +++ b/admin/build.sh @@ -62,4 +62,4 @@ if [[ "$TRAVIS_TAG" =~ $tagPat ]]; then fi fi -sbt -Dhttps.protocols=TLSv1.2 -sbt-dir=/home/travis/.sbt ";$crossScalaVersion ;$publishVersion ;$projectPrefix/clean ;$testProjectPrefix/test ;$projectPrefix/publishLocal ;$publishTask" +sbt ";$crossScalaVersion ;$publishVersion ;$projectPrefix/clean ;$testProjectPrefix/test ;$projectPrefix/publishLocal ;$publishTask" diff --git a/build.sbt b/build.sbt index cc7362c6..939a91d4 100644 --- a/build.sbt +++ b/build.sbt @@ -32,7 +32,24 @@ lazy val compat = crossProject(JSPlatform, JVMPlatform) ) .jvmSettings( OsgiKeys.exportPackage := Seq(s"scala.collection.compat.*;version=${version.value}"), - libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test" + libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test", + javaHome := { + val oldValue = javaHome.value + val isOnCi = sys.env.get("CI").isDefined + + if (isOnCi) { + // switch back to the jdk set by the build matrix + val ciJavaHome = + sys.env("TRAVIS_JDK_VERSION") match { + case "openjdk6" => "/usr/lib/jvm/java-6-openjdk-amd64" + case "oraclejdk8" => "/usr/lib/jvm/java-8-oracle" + } + + println(s"using JAVA_HOME: $ciJavaHome") + Some(file(ciJavaHome)) + } + else oldValue + } ) .jsSettings( scalacOptions += { diff --git a/compat/src/test/scala/test/scala/collection/JdkVersionTest.scala b/compat/src/test/scala/test/scala/collection/JdkVersionTest.scala new file mode 100644 index 00000000..1e5ac7cc --- /dev/null +++ b/compat/src/test/scala/test/scala/collection/JdkVersionTest.scala @@ -0,0 +1,25 @@ +package test.scala.collection + +import org.junit.Assert._ +import org.junit.Test + +class JdkVersionTest { + + @Test + def testJavaVersion: Unit = { + val isOnCi = sys.env.get("CI").isDefined + + if (isOnCi) { + val travisJdkVersion = sys.env("TRAVIS_JDK_VERSION") + val jdkVersion = sys.props("java.specification.version") + + if (travisJdkVersion == "openjdk6") { + assertEquals(jdkVersion, "1.8") + } else if (travisJdkVersion == "oraclejdk8") { + assertEquals(jdkVersion, "1.6") + } else { + throw new Exception(s"Unknown CI jdk version: $travisJdkVersion") + } + } + } +}