Skip to content

Commit ee0e655

Browse files
committed
feat: add YugabyteDB as a compatibility-tested database
1 parent c431fe4 commit ee0e655

4 files changed

Lines changed: 16 additions & 3 deletions

File tree

.github/workflows/build-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ jobs:
126126
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'run-compat-tests')
127127
strategy:
128128
matrix:
129-
db: [ MARIADB ]
129+
db: [ MARIADB, YUGABYTEDB ]
130130
steps:
131131
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
132132
with:

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Kapper is a lightweight, Dapper-inspired ORM (Object-Relational Mapping) library
2222
![MSSQL](https://img.shields.io/badge/mssql-%23CC2927.svg?style=for-the-badge&logo=microsoftsqlserver&logoColor=white)
2323
![DuckDB](https://img.shields.io/badge/duckdb-FFF000.svg?style=for-the-badge&logo=duckdb&logoColor=black)
2424
![MariaDB](https://img.shields.io/badge/mariadb-003545.svg?style=for-the-badge&logo=mariadb&logoColor=white)
25+
![YugabyteDB](https://img.shields.io/badge/yugabytedb-FC4C02.svg?style=for-the-badge&logo=yugabyte&logoColor=white)
2526

2627
See [Kapper](https://driessamyn.github.io/kapper/) for more information.
2728

core/src/integrationTest/kotlin/net/samyn/kapper/AbstractDbTests.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import org.testcontainers.containers.MSSQLServerContainer
1515
import org.testcontainers.containers.MariaDBContainer
1616
import org.testcontainers.containers.MySQLContainer
1717
import org.testcontainers.containers.PostgreSQLContainer
18+
import org.testcontainers.containers.YugabyteDBYSQLContainer
1819
import org.testcontainers.oracle.OracleContainer
1920
import java.sql.Connection
2021
import java.sql.DriverManager
@@ -53,6 +54,12 @@ abstract class AbstractDbTests {
5354
.also { it.start() }
5455
}
5556

57+
private val yugabytedb by lazy {
58+
YugabyteDBYSQLContainer("yugabytedb/yugabyte:2024.2.8.0-b85")
59+
.withStartupTimeout(Duration.ofMinutes(3))
60+
.also { it.start() }
61+
}
62+
5663
private val mariadb by lazy {
5764
MariaDBContainer("mariadb:11.7").also { it.start() }
5865
}
@@ -86,6 +93,7 @@ abstract class AbstractDbTests {
8693
"MSSQLSERVER" to { getConnection(msSqlServer) },
8794
"ORACLE" to { getConnection(oracle) },
8895
"MARIADB" to { getConnection(mariadb) },
96+
"YUGABYTEDB" to { getConnection(yugabytedb) },
8997
)
9098

9199
val dbs =

gradle/libs.versions.toml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ mssql-server-driver = "13.2.1.jre11"
1313
mysql-driver = "9.6.0"
1414
oracle-driver = "23.26.0.0.0"
1515
postgresql-driver = "42.7.8"
16+
yugabytedb-driver = "42.7.3-yb-4"
1617
slf4j = "2.0.17"
1718
duckdb = "1.3.1.0"
1819
sqlite = "3.51.2.0"
@@ -40,6 +41,7 @@ mssql-server-driver = { module = "com.microsoft.sqlserver:mssql-jdbc", version.r
4041
mysql-driver = { module = "com.mysql:mysql-connector-j", version.ref = "mysql-driver" }
4142
oracle-driver = { module = "com.oracle.database.jdbc:ojdbc11", version.ref = "oracle-driver" }
4243
postgresql-driver = { module = "org.postgresql:postgresql", version.ref = "postgresql-driver" }
44+
yugabytedb-driver = { module = "com.yugabyte:jdbc-yugabytedb", version.ref = "yugabytedb-driver" }
4345
slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
4446
slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" }
4547
duckdb-jdbc = { module = "org.duckdb:duckdb_jdbc", version.ref = "duckdb" }
@@ -51,6 +53,7 @@ test-containers-mysql = { module = "org.testcontainers:mysql", version.ref = "te
5153
test-containers-oracle = { module = "org.testcontainers:oracle-free", version.ref = "test-containers" }
5254
test-containers-mariadb = { module = "org.testcontainers:mariadb", version.ref = "test-containers" }
5355
test-containers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "test-containers" }
56+
test-containers-yugabytedb = { module = "org.testcontainers:yugabytedb", version.ref = "test-containers" }
5457

5558
# Example dependencies
5659
hibernate-community-dialects = { module = "org.hibernate.orm:hibernate-community-dialects", version = "7.3.0.Final" }
@@ -83,9 +86,10 @@ test-containers = [
8386
"test-containers-mysql",
8487
"test-containers-postgresql",
8588
"test-containers-mssqlserver",
86-
"test-containers-oracle"
89+
"test-containers-oracle",
90+
"test-containers-yugabytedb"
8791
]
88-
test-dbs = ["mariadb-driver", "mysql-driver", "postgresql-driver", "sqlite-jdbc", "duckdb-jdbc", "mssql-server-driver", "oracle-driver"]
92+
test-dbs = ["mariadb-driver", "mysql-driver", "postgresql-driver", "yugabytedb-driver", "sqlite-jdbc", "duckdb-jdbc", "mssql-server-driver", "oracle-driver"]
8993

9094
# Example bundles
9195
hibernate = ["hibernate-core", "hibernate-validator", "glassfish-jakarta"]

0 commit comments

Comments
 (0)