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
25 changes: 2 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,35 +24,14 @@ jobs:
matrix:
os: [ubuntu-latest]
scala: [3.3.8]
java:
- temurin@8
- 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@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 8
cache: sbt

- 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 @@ -81,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
29 changes: 12 additions & 17 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ ThisBuild / scalaVersion := scala3
ThisBuild / version := "0.8.0"

// GitHub Actions config
val javaVersions = Seq(8, 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("main")
ThisBuild / githubWorkflowUseSbtThinClient := true

val isJava25 = s"matrix.java == '${javaVersions.find(_.version == "25").get.render}'"

Expand All @@ -43,7 +44,7 @@ lazy val mavenRepoUrl = "https://maven.bondlink-cdn.com"
lazy val baseSettings = Seq(
organization := "com.bondlink",
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(),
),
scalacOptions ++= foldScalaV(scalaVersion.value)(
Expand All @@ -68,39 +69,33 @@ lazy val publishSettings = Seq(
publish / skip := false,
s3PublishBucket := "bondlink-maven-repo",
resolvers += "bondlink-maven-repo" at mavenRepoUrl,
mimaPreviousArtifacts := Set("com.bondlink" %%% name.value % "0.6.0"),
mimaPreviousArtifacts := Set("com.bondlink" %% name.value % "0.6.0"),
)

lazy val munit = Def.setting("org.scalameta" %%% "munit" % "1.3.3" % Test)
lazy val shapeless = Def.setting("com.chuusai" %%% "shapeless" % "2.3.13")
lazy val scalacheck = Def.setting("org.scalacheck" %%% "scalacheck" % "1.19.0" % Test)
lazy val munit = "org.scalameta" %% "munit" % "1.3.3" % Test
lazy val shapeless = "com.chuusai" %% "shapeless" % "2.3.13"
lazy val scalacheck = "org.scalacheck" %% "scalacheck" % "1.19.0" % Test

// Newer versions of Scala 3 require Java 17 so we can't use Java 8 or 11 with them
def maybeAddScala3Next(matrix: sbt.internal.ProjectMatrix) = {
val jv = sys.props.getOrElse("java.specification.version", "")
if (jv == "1.8" || jv == "8" || jv == "11") matrix
else matrix.jvmPlatform(
lazy val core = projectMatrix.in(file("core"))
.jvmPlatform(scalaVersions = scalaVersions)
.jvmPlatform(
scalaVersions = Seq(scala3Next),
axisValues = Seq(scala3NextAxis),
settings = Seq(
publish / skip := true,
mimaPreviousArtifacts := Set(),
),
)
}

lazy val core = maybeAddScala3Next(projectMatrix.in(file("core")))
.jvmPlatform(scalaVersions = scalaVersions)
.jsPlatform(scalaVersions = scalaVersions)
.nativePlatform(scalaVersions = scalaVersions)
.settings(baseSettings)
.settings(publishSettings)
.settings(
name := "formless",
libraryDependencies ++= Seq(munit.value, scalacheck.value),
libraryDependencies ++= Seq(munit, scalacheck),
libraryDependencies ++= foldScalaV(scalaVersion.value)(
Seq(
shapeless.value,
shapeless,
scalaOrganization.value % "scala-compiler" % scalaVersion.value % "provided",
),
Seq(),
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
3 changes: 0 additions & 3 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
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")
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2")
addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.21.0")
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.12")
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.9.0")
Loading