From 3c41a98a439e66c3389de41bbd9d6403d22d2722 Mon Sep 17 00:00:00 2001 From: ckipp01 Date: Sat, 1 May 2021 17:39:00 +0200 Subject: [PATCH] Update CI and release strategy --- .github/workflows/{pr.yml => ci.yml} | 9 +- .github/workflows/release.yml | 20 ++++ build.sbt | 95 ++++++++----------- project/plugins.sbt | 7 +- .../scala/scoverage/ScoverageSbtPlugin.scala | 3 +- version.sbt | 1 - 6 files changed, 67 insertions(+), 68 deletions(-) rename .github/workflows/{pr.yml => ci.yml} (92%) create mode 100644 .github/workflows/release.yml delete mode 100644 version.sbt diff --git a/.github/workflows/pr.yml b/.github/workflows/ci.yml similarity index 92% rename from .github/workflows/pr.yml rename to .github/workflows/ci.yml index d41348e4..036fbc59 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/ci.yml @@ -1,11 +1,12 @@ -name: pr +name: CI on: - pull_request: + push: paths-ignore: - - 'doc/**' - - 'docs/**' - '*.md' + branches: + - master + pull_request: jobs: scala: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..90ec276b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,20 @@ +name: Release +on: + push: + branches: + - master + tags: ["*"] +jobs: + publish: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2.3.4 + with: + fetch-depth: 0 + - uses: olafurpg/setup-scala@v10 + - run: sbt ci-release + env: + PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} + PGP_SECRET: ${{ secrets.PGP_SECRET }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} diff --git a/build.sbt b/build.sbt index 8188ad12..40e60d80 100644 --- a/build.sbt +++ b/build.sbt @@ -1,21 +1,37 @@ name := "sbt-scoverage" -organization := "org.scoverage" import sbt.ScriptedPlugin.autoImport.scriptedLaunchOpts -import sbtrelease.ReleasePlugin.autoImport.ReleaseTransformations._ -releaseProcess := Seq[ReleaseStep]( - checkSnapshotDependencies, - inquireVersions, - runClean, - releaseStepCommandAndRemaining("test"), - setReleaseVersion, - commitReleaseVersion, - tagRelease, - releaseStepCommandAndRemaining("publishSigned"), - setNextVersion, - commitNextVersion, - pushChanges +def localSnapshotVersion = "1.7.1-SNAPSHOT" +def isCI = System.getenv("CI") != null + +inThisBuild( + List( + organization := "org.scoverage", + homepage := Some(url("http://scoverage.org/")), + developers := List( + Developer( + "sksamuel", + "Stephen Samuel", + "sam@sksamuel.com", + url("https://github.com/sksamuel") + ), + Developer( + "gslowikowski", + "Grzegorz Slowikowski", + "gslowikowski@gmail.com", + url("https://github.com/gslowikowski") + ) + ), + licenses := Seq( + "Apache-2.0" -> url("http://www.apache.org/license/LICENSE-2.0") + ), + scalaVersion := "2.12.13", + version ~= { dynVer => + if (isCI) dynVer + else localSnapshotVersion // only for local publishing + } + ) ) lazy val root = Project("sbt-scoverage", file(".")) @@ -24,55 +40,22 @@ lazy val root = Project("sbt-scoverage", file(".")) libraryDependencies ++= Seq( "org.scala-lang" % "scala-compiler" % scalaVersion.value % Compile ), - libraryDependencies += "org.scoverage" %% "scalac-scoverage-plugin" % "1.4.3" cross(CrossVersion.full), - scalaVersion := "2.12.13", - publishMavenStyle := true, - publishConfiguration := publishConfiguration.value.withOverwrite(true), - publishLocalConfiguration := publishLocalConfiguration.value.withOverwrite(true), - releasePublishArtifactsAction := PgpKeys.publishSigned.value, + libraryDependencies += "org.scoverage" %% "scalac-scoverage-plugin" % "1.4.3" cross (CrossVersion.full), Test / fork := false, Test / publishArtifact := false, Test / parallelExecution := false, - scalacOptions := Seq("-unchecked", "-deprecation", "-feature", "-encoding", "utf8"), - publishTo := { - if (isSnapshot.value) - Some("snapshots" at "https://oss.sonatype.org/content/repositories/snapshots") - else - Some("releases" at "https://oss.sonatype.org/service/local/staging/deploy/maven2") - }, + scalacOptions := Seq( + "-unchecked", + "-deprecation", + "-feature", + "-encoding", + "utf8" + ), resolvers ++= { if (isSnapshot.value) Seq(Resolver.sonatypeRepo("snapshots")) else Nil }, scriptedLaunchOpts ++= Seq( "-Xmx1024M", "-Dplugin.version=" + version.value - ), - pomExtra := { - https://github.com/scoverage/sbt-scoverage - - - Apache 2 - http://www.apache.org/licenses/LICENSE-2.0 - repo - - - - git@github.com:scoverage/sbt-scoverage.git - scm:git@github.com:scoverage/sbt-scoverage.git - - - - sksamuel - sksamuel - http://github.com/sksamuel - - - gslowikowski - Grzegorz Slowikowski - http://github.com/gslowikowski - - - } + ) ) - -scalariformAutoformat := false diff --git a/project/plugins.sbt b/project/plugins.sbt index 5263b3bd..4c61369e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,2 @@ libraryDependencies += "org.scala-sbt" %% "scripted-plugin" % sbtVersion.value - -addSbtPlugin("com.jsuereth" % "sbt-pgp" % "2.0.1") - -addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.8.1") - -addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.13") +addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.7") diff --git a/src/main/scala/scoverage/ScoverageSbtPlugin.scala b/src/main/scala/scoverage/ScoverageSbtPlugin.scala index f853bc40..e06c103e 100644 --- a/src/main/scala/scoverage/ScoverageSbtPlugin.scala +++ b/src/main/scala/scoverage/ScoverageSbtPlugin.scala @@ -4,6 +4,7 @@ import sbt.Keys._ import sbt._ import sbt.plugins.JvmPlugin import scoverage.report.{CoberturaXmlWriter, CoverageAggregator, ScoverageHtmlWriter, ScoverageXmlWriter} +import java.time.Instant object ScoverageSbtPlugin extends AutoPlugin { @@ -215,7 +216,7 @@ object ScoverageSbtPlugin extends AutoPlugin { // Create the coverage report for teamcity (HTML files) if (createCoverageZip) - IO.zip(Path.allSubpaths(reportDir), crossTarget / "coverage.zip") + IO.zip(Path.allSubpaths(reportDir), crossTarget / "coverage.zip", Some(Instant.now().toEpochMilli())) } private def loadCoverage(crossTarget: File, log: Logger): Option[Coverage] = { diff --git a/version.sbt b/version.sbt deleted file mode 100644 index 7dc21d88..00000000 --- a/version.sbt +++ /dev/null @@ -1 +0,0 @@ -version in ThisBuild := "1.7.1-SNAPSHOT"