diff --git a/.github/workflows/buildAndTest.yml b/.github/workflows/buildAndTest.yml index 1cb4ebd..f364049 100644 --- a/.github/workflows/buildAndTest.yml +++ b/.github/workflows/buildAndTest.yml @@ -77,3 +77,18 @@ jobs: key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}-${{ hashFiles('**/plugins.sbt') }}-${{ hashFiles('**/build.properties') }} - name: Run scapegoat run: sbt scapegoat + + mima: + name: Report Binary Issues + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Cache SBT & ivy cache + uses: actions/cache@v2 + with: + path: | + ~/.ivy2/cache + ~/.sbt + key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}-${{ hashFiles('**/plugins.sbt') }}-${{ hashFiles('**/build.properties') }} + - name: Run mima + run: sbt mimaReportBinaryIssues diff --git a/build.sbt b/build.sbt index 42a00d2..afc9428 100644 --- a/build.sbt +++ b/build.sbt @@ -7,6 +7,7 @@ lazy val root = (project in file(".")) homepage := Some(url("https://github.com/moia-oss/scala-http-client")), scalaVersion := "2.13.4", crossScalaVersions := List("2.13.4", "2.12.13"), + versionScheme := Some("early-semver"), scalacOptions ++= { CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, 12)) => scalacOptions_2_12 @@ -28,6 +29,7 @@ lazy val root = (project in file(".")) GitVersioning, GitBranchPrompt ) + .settings(mimaSettings) val akkaVersion = "2.6.12" val akkaHttpVersion = "10.2.3" @@ -117,3 +119,7 @@ lazy val sbtGitSettings = Seq( case _ => None } ) + +lazy val mimaSettings = Seq( + mimaPreviousArtifacts := Set("io.moia" %% "scala-http-client" % "4.0.0") +) diff --git a/project/plugins.sbt b/project/plugins.sbt index bb1c0fe..e8940cd 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -14,3 +14,6 @@ addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.9.5") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.1.2") addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.0") + +// sbt> mimaReportBinaryIssues +addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.8.1")