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: test
run: sbt Test/compile
18 changes: 10 additions & 8 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ val scala3 = "3.3.8"
ThisBuild / scalaVersion := scala3

// 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 / githubWorkflowPublishTargetBranches := Seq()
ThisBuild / githubWorkflowUseSbtThinClient := true

ThisBuild / githubWorkflowBuild := Seq(
WorkflowStep.Run(List("sbt Test/compile"), name = Some("test")),
Expand All @@ -37,12 +38,12 @@ val publishSettings = Seq(
s3PublishBucket := "bondlink-maven-repo",
)

def baseProj(id: String, nme: String) =
sbt.internal.ProjectMatrix(id, file(id))
def baseProj(matrix: ProjectMatrix, nme: String) =
matrix
.jvmPlatform(scalaVersions = Seq(scala2, scala3))
.settings(baseSettings ++ Seq(name := nme))

lazy val disableToStringPlugin = baseProj("plugin", "disable-to-string-plugin")
lazy val disableToStringPlugin = baseProj(projectMatrix.in(file("plugin")), "disable-to-string-plugin")
.settings(publishSettings ++ Seq(
libraryDependencies += foldScalaV(scalaVersion.value)(
"org.scala-lang" % "scala-compiler",
Expand All @@ -52,9 +53,10 @@ lazy val disableToStringPlugin = baseProj("plugin", "disable-to-string-plugin")

val testSettings = baseSettings ++ Seq(
scalacOptions ++= Def.taskDyn {
val conv = fileConverter.value
val scalaV = scalaVersion.value
Def.task {
val jar = (disableToStringPlugin.jvm(scalaV) / Compile / Keys.`package`).value
val jar = conv.toPath((disableToStringPlugin.jvm(scalaV) / Compile / Keys.`package`).value).toFile
Seq(
s"-Xplugin:${jar.getAbsolutePath}",
s"-Jdummy$name=${jar.lastModified}",
Expand All @@ -69,14 +71,14 @@ val testSettings = baseSettings ++ Seq(
Compile / unmanagedSourceDirectories += (ThisBuild / baseDirectory).value / "tests" / "src" / "main" / "scala",
)

lazy val testAllOption = baseProj("test-all-option", "test-all-option")
lazy val testAllOption = baseProj(projectMatrix.in(file("test-all-option")), "test-all-option")
.settings(testSettings)
.settings(
scalacOptions += "-P:disableToString:all",
)
.aggregate(disableToStringPlugin)

lazy val testLiteralOption = baseProj("test-literal-option", "test-literal-option")
lazy val testLiteralOption = baseProj(projectMatrix.in(file("test-literal-option")), "test-literal-option")
.settings(testSettings)
.settings(
scalacOptions ++= Seq(
Expand All @@ -89,7 +91,7 @@ lazy val testLiteralOption = baseProj("test-literal-option", "test-literal-optio
)
.aggregate(disableToStringPlugin)

lazy val testRegexOption = baseProj("test-regex-option", "test-regex-option")
lazy val testRegexOption = baseProj(projectMatrix.in(file("test-regex-option")), "test-regex-option")
.settings(testSettings)
.settings(
scalacOptions += "-P:disableToString:regex=^(scala\\.Boolean|scala\\.Int|bl\\.(Foo|Bar|testObj\\.Baz))$",
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,6 +1,5 @@
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("org.typelevel" % "sbt-tpolecat" % "0.5.6")