Update testcontainers

This commit is contained in:
xuwei-k
2025-10-20 07:50:49 +09:00
committed by kenji yoshida
parent 72a354931e
commit 2fbdead64b
2 changed files with 36 additions and 40 deletions

View File

@@ -42,33 +42,32 @@ libraryDependencies ++= Seq(
"sshd-mina" "sshd-mina"
) exclude ("org.apache.sshd", "sshd-netty") ) exclude ("org.apache.sshd", "sshd-netty")
exclude ("org.apache.sshd", "sshd-spring-sftp"), exclude ("org.apache.sshd", "sshd-spring-sftp"),
"org.apache.tika" % "tika-core" % "3.2.3", "org.apache.tika" % "tika-core" % "3.2.3",
"com.github.takezoe" %% "blocking-slick" % "0.0.14", "com.github.takezoe" %% "blocking-slick" % "0.0.14",
"com.novell.ldap" % "jldap" % "2009-10-07", "com.novell.ldap" % "jldap" % "2009-10-07",
"com.h2database" % "h2" % "2.4.240", "com.h2database" % "h2" % "2.4.240",
"org.mariadb.jdbc" % "mariadb-java-client" % "2.7.12", "org.mariadb.jdbc" % "mariadb-java-client" % "2.7.12",
"org.postgresql" % "postgresql" % "42.7.8", "org.postgresql" % "postgresql" % "42.7.8",
"ch.qos.logback" % "logback-classic" % "1.5.20", "ch.qos.logback" % "logback-classic" % "1.5.20",
"com.zaxxer" % "HikariCP" % "7.0.2" exclude ("org.slf4j", "slf4j-api"), "com.zaxxer" % "HikariCP" % "7.0.2" exclude ("org.slf4j", "slf4j-api"),
"com.typesafe" % "config" % "1.4.5", "com.typesafe" % "config" % "1.4.5",
"fr.brouillard.oss.security.xhub" % "xhub4j-core" % "1.1.0", "fr.brouillard.oss.security.xhub" % "xhub4j-core" % "1.1.0",
"io.github.java-diff-utils" % "java-diff-utils" % "4.16", "io.github.java-diff-utils" % "java-diff-utils" % "4.16",
"org.cache2k" % "cache2k-all" % "1.6.0.Final", "org.cache2k" % "cache2k-all" % "1.6.0.Final",
"net.coobird" % "thumbnailator" % "0.4.21", "net.coobird" % "thumbnailator" % "0.4.21",
"com.github.zafarkhaja" % "java-semver" % "0.10.2", "com.github.zafarkhaja" % "java-semver" % "0.10.2",
"com.nimbusds" % "oauth2-oidc-sdk" % "11.30", "com.nimbusds" % "oauth2-oidc-sdk" % "11.30",
"org.eclipse.jetty" % "jetty-webapp" % JettyVersion % "provided", "org.eclipse.jetty" % "jetty-webapp" % JettyVersion % "provided",
"javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided", "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided",
"junit" % "junit" % "4.13.2" % "test", "junit" % "junit" % "4.13.2" % "test",
"org.scalatra" %% "scalatra-scalatest-javax" % ScalatraVersion % "test", "org.scalatra" %% "scalatra-scalatest-javax" % ScalatraVersion % "test",
"org.mockito" % "mockito-core" % "5.20.0" % "test", "org.mockito" % "mockito-core" % "5.20.0" % "test",
"com.dimafeng" %% "testcontainers-scala" % "0.43.0" % "test", "org.testcontainers" % "testcontainers-mysql" % "2.0.1" % "test",
"org.testcontainers" % "mysql" % "1.21.3" % "test", "org.testcontainers" % "testcontainers-postgresql" % "2.0.1" % "test",
"org.testcontainers" % "postgresql" % "1.21.3" % "test", "net.i2p.crypto" % "eddsa" % "0.3.0",
"net.i2p.crypto" % "eddsa" % "0.3.0", "is.tagomor.woothee" % "woothee-java" % "1.11.0",
"is.tagomor.woothee" % "woothee-java" % "1.11.0", "org.ec4j.core" % "ec4j-core" % "1.1.1",
"org.ec4j.core" % "ec4j-core" % "1.1.1", "org.kohsuke" % "github-api" % "1.330" % "test"
"org.kohsuke" % "github-api" % "1.330" % "test"
) )
// Compiler settings // Compiler settings

View File

@@ -1,14 +1,14 @@
package gitbucket.core package gitbucket.core
import java.sql.DriverManager import java.sql.DriverManager
import com.dimafeng.testcontainers.{MySQLContainer, PostgreSQLContainer}
import io.github.gitbucket.solidbase.Solidbase import io.github.gitbucket.solidbase.Solidbase
import io.github.gitbucket.solidbase.model.Module import io.github.gitbucket.solidbase.model.Module
import liquibase.database.core.{H2Database, MySQLDatabase, PostgresDatabase} import liquibase.database.core.{H2Database, MySQLDatabase, PostgresDatabase}
import org.junit.runner.Description import org.junit.runner.Description
import org.scalatest.funsuite.AnyFunSuite import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.Tag import org.scalatest.Tag
import org.testcontainers.postgresql.PostgreSQLContainer
import org.testcontainers.mysql.MySQLContainer
import org.testcontainers.utility.DockerImageName import org.testcontainers.utility.DockerImageName
object ExternalDBTest extends Tag("ExternalDBTest") object ExternalDBTest extends Tag("ExternalDBTest")
@@ -28,20 +28,17 @@ class GitBucketCoreModuleSpec extends AnyFunSuite {
Seq("8.4", "5.7").foreach { tag => Seq("8.4", "5.7").foreach { tag =>
test(s"Migration MySQL $tag", ExternalDBTest) { test(s"Migration MySQL $tag", ExternalDBTest) {
val container = new MySQLContainer() { val container = new MySQLContainer(s"mysql:$tag") {
override val container: org.testcontainers.containers.MySQLContainer[?] = override def getDriverClassName = "org.mariadb.jdbc.Driver"
new org.testcontainers.containers.MySQLContainer(s"mysql:$tag") { override def getJdbcUrl: String = super.getJdbcUrl + "?permitMysqlScheme"
override def getDriverClassName = "org.mariadb.jdbc.Driver"
override def getJdbcUrl: String = super.getJdbcUrl + "?permitMysqlScheme"
}
} }
container.start() container.start()
try { try {
new Solidbase().migrate( new Solidbase().migrate(
DriverManager.getConnection( DriverManager.getConnection(
container.jdbcUrl, container.getJdbcUrl,
container.username, container.getUsername,
container.password container.getPassword
), ),
Thread.currentThread().getContextClassLoader(), Thread.currentThread().getContextClassLoader(),
new MySQLDatabase(), new MySQLDatabase(),
@@ -55,12 +52,12 @@ class GitBucketCoreModuleSpec extends AnyFunSuite {
Seq("11", "10").foreach { tag => Seq("11", "10").foreach { tag =>
test(s"Migration PostgreSQL $tag", ExternalDBTest) { test(s"Migration PostgreSQL $tag", ExternalDBTest) {
val container = PostgreSQLContainer(DockerImageName.parse(s"postgres:$tag")) val container = new PostgreSQLContainer(DockerImageName.parse(s"postgres:$tag"))
container.start() container.start()
try { try {
new Solidbase().migrate( new Solidbase().migrate(
DriverManager.getConnection(container.jdbcUrl, container.username, container.password), DriverManager.getConnection(container.getJdbcUrl, container.getUsername, container.getPassword),
Thread.currentThread().getContextClassLoader(), Thread.currentThread().getContextClassLoader(),
new PostgresDatabase(), new PostgresDatabase(),
new Module(GitBucketCoreModule.getModuleId, GitBucketCoreModule.getVersions) new Module(GitBucketCoreModule.getModuleId, GitBucketCoreModule.getVersions)