From 1f67ab80f92fc36c069f3d205ba39428110174b5 Mon Sep 17 00:00:00 2001 From: Toshihiro Suzuki Date: Tue, 22 Jul 2025 22:54:30 +0900 Subject: [PATCH] Use PostgreSQL in integration tests by default (#2894) --- .github/workflows/ci.yaml | 39 ++++++++++--------- .../com/scalar/db/storage/jdbc/JdbcEnv.java | 6 +-- .../storage/multistorage/MultiStorageEnv.java | 6 +-- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 799f6e59ce..067340ba43 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -461,7 +461,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mysql://localhost:3306/ -Dscalardb.jdbc.username=root -Dscalardb.jdbc.password=mysql ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -520,7 +520,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mysql://localhost:3306/ -Dscalardb.jdbc.username=root -Dscalardb.jdbc.password=mysql ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -579,7 +579,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mysql://localhost:3306/ -Dscalardb.jdbc.username=root -Dscalardb.jdbc.password=mysql ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -643,7 +643,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:postgresql://localhost:5432/ -Dscalardb.jdbc.username=postgres -Dscalardb.jdbc.password=postgres ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -707,7 +707,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:postgresql://localhost:5432/ -Dscalardb.jdbc.username=postgres -Dscalardb.jdbc.password=postgres ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -771,7 +771,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:postgresql://localhost:5432/ -Dscalardb.jdbc.username=postgres -Dscalardb.jdbc.password=postgres ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -835,7 +835,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:postgresql://localhost:5432/ -Dscalardb.jdbc.username=postgres -Dscalardb.jdbc.password=postgres ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -899,7 +899,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:postgresql://localhost:5432/ -Dscalardb.jdbc.username=postgres -Dscalardb.jdbc.password=postgres ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -1077,7 +1077,7 @@ jobs: - name: Wait for the container to be ready timeout-minutes: 5 - run : | + run: | while [ "`docker inspect -f {{.State.Health.Status}} oracle-23`" != "healthy" ] do sleep 10 @@ -1461,7 +1461,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mariadb://localhost:3306 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mariadb://localhost:3306 -Dscalardb.jdbc.username=root -Dscalardb.jdbc.password=mysql ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -1482,7 +1482,6 @@ jobs: - label: with_group_commit group_commit_enabled: true - steps: - name: Run MariaDB 11.4 run: | @@ -1521,7 +1520,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Execute Gradle 'integrationTestJdbc' task - run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mariadb://localhost:3306 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + run: ./gradlew integrationTestJdbc -Dscalardb.jdbc.url=jdbc:mariadb://localhost:3306 -Dscalardb.jdbc.username=root -Dscalardb.jdbc.password=mysql ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() @@ -1743,13 +1742,19 @@ jobs: name: db2_12.1_integration_test_reports_${{ matrix.mode.label }} path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-multi-storage: name: Multi-storage integration test (${{ matrix.mode.label }}) runs-on: ubuntu-latest services: + postgres: + image: postgres:17-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + cassandra: image: cassandra:3.11 env: @@ -1767,10 +1772,6 @@ jobs: group_commit_enabled: true steps: - - name: Run MySQL 8 - run: | - docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:8 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin - - uses: actions/checkout@v4 - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) @@ -1808,7 +1809,7 @@ jobs: - name: Upload Gradle test reports uses: actions/upload-artifact@v4 - if : always() + if: always() with: name: multi_storage_integration_test_reports_${{ matrix.mode.label }} path: core/build/reports/tests/integrationTestMultiStorage diff --git a/core/src/integration-test/java/com/scalar/db/storage/jdbc/JdbcEnv.java b/core/src/integration-test/java/com/scalar/db/storage/jdbc/JdbcEnv.java index 5f334d646f..04630e793e 100644 --- a/core/src/integration-test/java/com/scalar/db/storage/jdbc/JdbcEnv.java +++ b/core/src/integration-test/java/com/scalar/db/storage/jdbc/JdbcEnv.java @@ -8,9 +8,9 @@ public final class JdbcEnv { private static final String PROP_JDBC_USERNAME = "scalardb.jdbc.username"; private static final String PROP_JDBC_PASSWORD = "scalardb.jdbc.password"; - private static final String DEFAULT_JDBC_URL = "jdbc:mysql://localhost:3306/"; - private static final String DEFAULT_JDBC_USERNAME = "root"; - private static final String DEFAULT_JDBC_PASSWORD = "mysql"; + private static final String DEFAULT_JDBC_URL = "jdbc:postgresql://localhost:5432/"; + private static final String DEFAULT_JDBC_USERNAME = "postgres"; + private static final String DEFAULT_JDBC_PASSWORD = "postgres"; private JdbcEnv() {} diff --git a/core/src/integration-test/java/com/scalar/db/storage/multistorage/MultiStorageEnv.java b/core/src/integration-test/java/com/scalar/db/storage/multistorage/MultiStorageEnv.java index 19da493b91..5bcdc9eed0 100644 --- a/core/src/integration-test/java/com/scalar/db/storage/multistorage/MultiStorageEnv.java +++ b/core/src/integration-test/java/com/scalar/db/storage/multistorage/MultiStorageEnv.java @@ -19,9 +19,9 @@ public final class MultiStorageEnv { private static final String DEFAULT_CASSANDRA_USERNAME = "cassandra"; private static final String DEFAULT_CASSANDRA_PASSWORD = "cassandra"; - private static final String DEFAULT_JDBC_CONTACT_POINT = "jdbc:mysql://localhost:3306/"; - private static final String DEFAULT_JDBC_USERNAME = "root"; - private static final String DEFAULT_JDBC_PASSWORD = "mysql"; + private static final String DEFAULT_JDBC_CONTACT_POINT = "jdbc:postgresql://localhost:5432/"; + private static final String DEFAULT_JDBC_USERNAME = "postgres"; + private static final String DEFAULT_JDBC_PASSWORD = "postgres"; private MultiStorageEnv() {}