Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,14 @@ jobs:
matrix:
os: [ubuntu-latest]
scala: [3.3.8]
java:
- temurin@11
- temurin@17
- temurin@21
- temurin@25
java: [temurin@17, temurin@21, temurin@25]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Setup Java (temurin@11)
if: matrix.java == 'temurin@11'
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 11
cache: sbt

- name: Setup Java (temurin@17)
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v5
Expand Down Expand Up @@ -72,7 +60,7 @@ jobs:
uses: sbt/setup-sbt@v1

- name: Check that workflows are up to date
run: sbt '++ ${{ matrix.scala }}' githubWorkflowCheck
run: sbt --client '++ ${{ matrix.scala }}; githubWorkflowCheck'

- name: Build project
run: sbt test
Expand Down
40 changes: 21 additions & 19 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@ lazy val scalaVersions = Seq(scala213, scala3)
ThisBuild / scalaVersion := scala3

// GitHub Actions config
val javaVersions = Seq(11, 17, 21, 25).map(v => JavaSpec.temurin(v.toString))
val javaVersions = Seq(17, 21, 25).map(v => JavaSpec.temurin(v.toString))

ThisBuild / githubWorkflowJavaVersions := javaVersions
ThisBuild / githubWorkflowArtifactUpload := false
ThisBuild / githubWorkflowBuildMatrixFailFast := Some(false)
ThisBuild / githubWorkflowTargetBranches := Seq("master")
ThisBuild / githubWorkflowUseSbtThinClient := true

def isJava(v: Int) = s"matrix.java == '${javaVersions.find(_.version == v.toString).get.render}'"

Expand All @@ -36,12 +37,13 @@ lazy val baseSettings = Seq(
organization := "typify",
version := "13.0.0",
libraryDependencies ++= foldScalaV(scalaVersion.value)(
Seq(compilerPlugin("org.typelevel" %% "kind-projector" % "0.13.4" cross CrossVersion.patch)),
Seq(compilerPlugin(("org.typelevel" %% "kind-projector" % "0.13.4").cross(CrossVersion.patch))),
Seq(),
),
libraryDependencySchemes += "org.scala-native" %% "test-interface_native0.5" % VersionScheme.EarlySemVer,
scalacOptions ++= foldScalaV(scalaVersion.value)(
Seq("-Vimplicits-verbose-tree"),
Seq("-no-indent"),
Seq(),
),
scalacOptions --= Seq(
"-language:existentials",
Expand All @@ -59,57 +61,57 @@ lazy val publishSettings = Seq(
publish / skip := false,
s3PublishBucket := "bondlink-maven-repo",
resolvers += "bondlink-maven-repo" at "https://maven.bondlink-cdn.com",
mimaPreviousArtifacts := Set(organization.value %%% name.value % "12.0.0"),
mimaPreviousArtifacts := Set(organization.value %% name.value % "12.0.0"),
)

def baseProj(
id: String,
matrix: ProjectMatrix,
nme: String,
includeJVM: Boolean = true,
includeJS: Boolean = true,
includeNative: Boolean = true,
) =
sbt.internal.ProjectMatrix(id, file(id))
matrix
.pipe(p => if (includeJVM) p.jvmPlatform(scalaVersions = scalaVersions) else p)
.pipe(p => if (includeJS) p.jsPlatform(scalaVersions = scalaVersions) else p)
.pipe(p => if (includeNative) p.nativePlatform(scalaVersions = scalaVersions) else p)
.settings(baseSettings ++ Seq(name := nme))

lazy val cats = Def.setting("org.typelevel" %%% "cats-core" % "2.13.0")
lazy val circe = Def.setting("io.circe" %%% "circe-core" % "0.14.15")
lazy val formless = Def.setting("com.bondlink" %%% "formless" % "0.8.0")
lazy val cats = "org.typelevel" %% "cats-core" % "2.13.0"
lazy val circe = "io.circe" %% "circe-core" % "0.14.15"
lazy val formless = "com.bondlink" %% "formless" % "0.8.0"
lazy val json4s = "io.github.json4s" %% "json4s-jackson" % "4.1.1"
lazy val playJson = Def.setting("org.playframework" %%% "play-json" % "3.0.6")
lazy val scalacheck = Def.setting("org.scalacheck" %%% "scalacheck" % "1.19.0" % Test)
lazy val playJson = "org.playframework" %% "play-json" % "3.0.6"
lazy val scalacheck = "org.scalacheck" %% "scalacheck" % "1.19.0" % Test

lazy val typify = baseProj("typify", "typify")
lazy val typify = baseProj(projectMatrix.in(file("typify")), "typify")
.settings(publishSettings)
.settings(
libraryDependencies ++= Seq(cats.value, formless.value, scalacheck.value),
libraryDependencies ++= Seq(cats, formless, scalacheck),
)

lazy val circeTypify = baseProj("circe-typify", "circe-typify", includeJS = false, includeNative = false)
lazy val circeTypify = baseProj(projectMatrix.in(file("circe-typify")), "circe-typify", includeJS = false, includeNative = false)
.settings(publishSettings)
.settings(
libraryDependencies += circe.value,
libraryDependencies += circe,
)
.dependsOn(typify % "test->test;compile->compile")

lazy val json4sTypify = baseProj("json4s-typify", "json4s-typify", includeJS = false, includeNative = false)
lazy val json4sTypify = baseProj(projectMatrix.in(file("json4s-typify")), "json4s-typify", includeJS = false, includeNative = false)
.settings(publishSettings)
.settings(
libraryDependencies += json4s
)
.dependsOn(typify % "test->test;compile->compile")

lazy val playjsonTypify = baseProj("play-json-typify", "play-json-typify", includeJS = false, includeNative = false)
lazy val playjsonTypify = baseProj(projectMatrix.in(file("play-json-typify")), "play-json-typify", includeJS = false, includeNative = false)
.settings(publishSettings)
.settings(
libraryDependencies ++= Seq(cats.value, playJson.value)
libraryDependencies ++= Seq(cats, playJson)
)
.dependsOn(typify % "test->test;compile->compile")

lazy val sjsTypify = baseProj("jsdynamic-typify", "jsdynamic-typify", includeJVM = false, includeNative = false)
lazy val sjsTypify = baseProj(projectMatrix.in(file("jsdynamic-typify")), "jsdynamic-typify", includeJVM = false, includeNative = false)
.settings(publishSettings)
.dependsOn(typify % "test->test;compile->compile")

Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sbt.version=1.12.12
sbt.version=2.0.0
1 change: 0 additions & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
resolvers += "bondlink-maven-repo" at "https://maven.bondlink-cdn.com"

addSbtPlugin("bondlink" % "sbt-s3-publish" % "0.0.1")
addSbtPlugin("com.eed3si9n" % "sbt-projectmatrix" % "0.11.0")
addSbtPlugin("com.github.sbt" % "sbt-github-actions" % "0.30.0")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.6")
addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.6")
Expand Down
Loading