Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.
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
80 changes: 50 additions & 30 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: CI

env:
JDK_JAVA_OPTIONS: -XX:+PrintCommandLineFlags -XX:+UseG1GC -Xmx4g -Xms4g
JVM_OPTS: -XX:+PrintCommandLineFlags -XX:+UseG1GC -Xmx4g -Xms4g
JDK_JAVA_OPTIONS: -XX:+PrintCommandLineFlags -XX:+UseG1GC -Xmx4g -Xss4M
JVM_OPTS: -XX:+PrintCommandLineFlags -XX:+UseG1GC -Xmx4g -Xss4M

on:
pull_request:
Expand All @@ -19,34 +19,45 @@ jobs:
fail-fast: false
steps:
- name: Checkout current branch
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3.3.0
- name: Setup Java
uses: actions/setup-java@v3.10.0
with:
fetch-depth: 0
- name: Setup Scala and Java
uses: olafurpg/setup-scala@v10
- name: Cache scala dependencies
uses: coursier/cache-action@v5
distribution: temurin
java-version: 17
cache: 'sbt'
- name: Lint code
run: sbt check

publishLocal:
runs-on: ubuntu-20.04
steps:
- name: Checkout current branch
uses: actions/checkout@v3.3.0
- name: Setup Java
uses: actions/setup-java@v3.10.0
with:
distribution: temurin
java-version: 8 # ensure it works on 8 because we publish for 8
cache: 'sbt'
- name: Check that building packages works
run: ./sbt +publishLocal

test:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
java: ['adopt@1.8', 'adopt@1.11']
scala: ['2.12.17', '2.13.10']
scala: ['2.12.*', '2.13.*']
steps:
- name: Checkout current branch
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3.3.0
- name: Setup Java
uses: actions/setup-java@v3.10.0
with:
fetch-depth: 0
- name: Setup Scala and Java
uses: olafurpg/setup-scala@v10
with:
java-version: ${{ matrix.java }}
- name: Cache scala dependencies
uses: coursier/cache-action@v5
distribution: temurin
java-version: 17
cache: 'sbt'
- name: Run tests
run: sbt ++${{ matrix.scala }} test

Expand All @@ -55,27 +66,36 @@ jobs:
timeout-minutes: 60
steps:
- name: Checkout current branch
uses: actions/checkout@v3.1.0
- name: Setup Scala and Java
uses: olafurpg/setup-scala@v13
- name: Cache scala dependencies
uses: coursier/cache-action@v6
uses: actions/checkout@v3.3.0
- name: Setup Java
uses: actions/setup-java@v3.10.0
with:
distribution: temurin
java-version: 17
cache: 'sbt'
- name: Check Document Generation
run: sbt docs/compileDocs

ci:
runs-on: ubuntu-20.04
needs: [ lint, publishLocal, test, website ]
steps:
- name: Aggregate of lint, and all tests
run: echo "ci passed"

publish:
runs-on: ubuntu-20.04
needs: [lint, test, website]
needs: [ ci ]
if: github.event_name != 'pull_request'
steps:
- name: Checkout current branch
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3.3.0
- name: Setup Java
uses: actions/setup-java@v3.10.0
with:
fetch-depth: 0
- name: Setup Scala and Java
uses: olafurpg/setup-scala@v10
- name: Cache scala dependencies
uses: coursier/cache-action@v5
distribution: temurin
java-version: 8 # ensure it works on 8 because we publish for 8
cache: 'sbt'
- name: Release artifacts
run: sbt ci-release
env:
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,9 @@ Learn more on the [ZIO SQL homepage](https://zio.dev/zio-sql/)!

## Contributing

For the general guidelines, see ZIO [contributor's guide](https://zio.dev/about/contributing).### TL;DR
For the general guidelines, see ZIO [contributor's guide](https://zio.dev/about/contributing).

### TL;DR
Prerequisites (installed):

| Technology | Version |
Expand Down
85 changes: 46 additions & 39 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,25 @@ import sbtcrossproject.CrossPlugin.autoImport.crossProject

inThisBuild(
List(
organization := "dev.zio",
homepage := Some(url("https://zio.dev/zio-sql/")),
licenses := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")),
developers := List(
organization := "dev.zio",
homepage := Some(url("https://zio.dev/zio-sql/")),
licenses := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")),
developers := List(
Developer("jdegoes", "John De Goes", "john@degoes.net", url("http://degoes.net"))
),
pgpPassphrase := sys.env.get("PGP_PASSWORD").map(_.toArray),
pgpPublicRing := file("/tmp/public.asc"),
pgpSecretRing := file("/tmp/secret.asc"),
scmInfo := Some(
ScmInfo(url("https://github.com/zio/zio-sql/"), "scm:git:git@github.com:zio/zio-sql.git")
)
)
)

addCommandAlias("fmtOnce", "all scalafmtSbt scalafmt test:scalafmt")
addCommandAlias("fmt", "fmtOnce;fmtOnce")
addCommandAlias("check", "all scalafmtSbtCheck scalafmtCheck test:scalafmtCheck")
addCommandAlias("fix", "all scalafmtSbt scalafmtAll")
addCommandAlias(
"check",
"; scalafmtSbtCheck; scalafmtCheckAll; Test/compile"
)

val zioVersion = "2.0.6"
val zioSchemaVersion = "0.4.2"
val zioVersion = "2.0.9"
val zioSchemaVersion = "0.4.8"
val testcontainersVersion = "1.17.6"
val testcontainersScalaVersion = "0.40.11"
val logbackVersion = "1.2.11"
Expand All @@ -36,8 +34,8 @@ lazy val root = project
unusedCompileDependenciesFilter -= moduleFilter("org.scala-js", "scalajs-library")
)
.aggregate(
coreJVM,
coreJS,
core.js,
core.jvm,
driver,
examples,
jdbc,
Expand All @@ -46,48 +44,50 @@ lazy val root = project
postgres,
sqlserver,
jdbc_hikaricp,
macros,
macros.js,
macros.jvm,
docs
)

lazy val core = crossProject(JSPlatform, JVMPlatform)
.in(file("core"))
.dependsOn(macros)
.settings(stdSettings("zio-sql"))
.settings(crossProjectSettings)
.settings(buildInfoSettings("zio.sql"))
.settings(
libraryDependencies ++= Seq(
"dev.zio" %% "zio" % zioVersion,
"dev.zio" %% "zio-streams" % zioVersion,
"dev.zio" %% "zio-schema" % zioSchemaVersion,
"dev.zio" %% "zio-schema-derivation" % zioSchemaVersion,
"dev.zio" %% "zio-test" % zioVersion % Test,
"dev.zio" %% "zio-test-sbt" % zioVersion % Test
),
dependencyOverrides += "dev.zio" %% "zio" % zioVersion,
resolvers ++= Resolver.sonatypeOssRepos("snapshots")
"dev.zio" %%% "zio-streams" % zioVersion,
"dev.zio" %%% "zio-schema" % zioSchemaVersion,
"dev.zio" %%% "zio-schema-derivation" % zioSchemaVersion,
"dev.zio" %%% "zio-test" % zioVersion % Test,
"dev.zio" %%% "zio-test-sbt" % zioVersion % Test
)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.jsSettings(
scalaJSUseMainModuleInitializer := true
)
.enablePlugins(BuildInfoPlugin)

lazy val coreJS = core.js
.settings(scalaJSUseMainModuleInitializer := true)

lazy val coreJVM = core.jvm.dependsOn(macros)

lazy val macros = project
lazy val macros = crossProject(JSPlatform, JVMPlatform)
.in(file("macros"))
.settings(stdSettings("zio-sql-macros"))
.settings(buildInfoSettings("zio.sql.macros"))
.settings(
libraryDependencies ++= Seq(
"dev.zio" %%% "zio" % zioVersion
),
libraryDependencies ++= {
if (scalaVersion.value == ScalaDotty) {
Seq()
} else
Seq(
"org.scala-lang" % "scala-reflect" % scalaVersion.value,
"dev.zio" %% "zio" % zioVersion
"org.scala-lang" % "scala-reflect" % scalaVersion.value
)
}
)
.enablePlugins(BuildInfoPlugin)

lazy val docs = project
.in(file("zio-sql-docs"))
Expand All @@ -97,12 +97,14 @@ lazy val docs = project
scalacOptions -= "-Xfatal-warnings",
crossScalaVersions := Seq(Scala213, Scala212, ScalaDotty),
projectName := "ZIO SQL",
mainModuleName := (coreJVM / moduleName).value,
mainModuleName := (core.jvm / moduleName).value,
projectStage := ProjectStage.ProductionReady,
ScalaUnidoc / unidoc / unidocProjectFilter := inProjects(),
docsPublishBranch := "master",
readmeContribution := readmeContribution.value +
"""|### TL;DR
"""|
|
|### TL;DR
|Prerequisites (installed):
|
|| Technology | Version |
Expand Down Expand Up @@ -140,11 +142,10 @@ lazy val driver = project
"dev.zio" %% "zio-schema-derivation" % zioSchemaVersion,
"dev.zio" %% "zio-test" % zioVersion % Test,
"dev.zio" %% "zio-test-sbt" % zioVersion % Test
),
dependencyOverrides += "dev.zio" %% "zio" % zioVersion,
resolvers ++= Resolver.sonatypeOssRepos("snapshots")
)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.enablePlugins(BuildInfoPlugin)

lazy val jdbc = project
.in(file("jdbc"))
Expand All @@ -167,11 +168,12 @@ lazy val jdbc = project
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.dependsOn(core.jvm)
.enablePlugins(BuildInfoPlugin)

lazy val jdbc_hikaricp = project
.in(file("jdbc-hikaricp"))
.settings(stdSettings("zio-sql-jdbc-hickaricp"))
.settings(buildInfoSettings("zio.sql.jdbc-hickaricp"))
.settings(buildInfoSettings("zio.sql.jdbc.hickaricp"))
.settings(
libraryDependencies ++= Seq(
"com.zaxxer" % "HikariCP" % "4.0.3", // 5.x doesn't support Java 1.8
Expand All @@ -184,6 +186,7 @@ lazy val jdbc_hikaricp = project
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.dependsOn(jdbc)
.enablePlugins(BuildInfoPlugin)

lazy val mysql = project
.in(file("mysql"))
Expand All @@ -203,6 +206,7 @@ lazy val mysql = project
)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.enablePlugins(BuildInfoPlugin)

lazy val oracle = project
.in(file("oracle"))
Expand All @@ -222,6 +226,7 @@ lazy val oracle = project
)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.enablePlugins(BuildInfoPlugin)

lazy val postgres = project
.in(file("postgres"))
Expand All @@ -241,6 +246,7 @@ lazy val postgres = project
)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.enablePlugins(BuildInfoPlugin)

lazy val sqlserver = project
.in(file("sqlserver"))
Expand All @@ -260,3 +266,4 @@ lazy val sqlserver = project
)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))
.enablePlugins(BuildInfoPlugin)
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.6"
addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.5.3")
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.9")
addSbtPlugin("com.github.cb372" % "sbt-explicit-dependencies" % "0.2.16")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.1")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.4")
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.2")
addSbtPlugin("dev.zio" % "zio-sbt-website" % "0.3.10")