diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 55fd32eff6..3a903a314e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -44,1220 +44,928 @@ env: INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT: '-Dscalardb.consensus_commit.coordinator.group_commit.enabled=true -Dscalardb.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis=15000 --tests "**.ConsensusCommit**"' jobs: - check: - name: Gradle check +# check: +# name: Gradle check +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Setup and execute Gradle 'check' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: check buildSrc:check +# +# - name: Save Gradle test reports +# if: always() +# run: | +# mkdir -p /tmp/gradle_test_reports/core +# mkdir -p /tmp/gradle_test_reports/server +# mkdir -p /tmp/gradle_test_reports/schema-loader +# cp -a core/build/reports/tests/test /tmp/gradle_test_reports/core/ +# cp -a server/build/reports/tests/test /tmp/gradle_test_reports/server/ +# cp -a schema-loader/build/reports/tests/test /tmp/gradle_test_reports/schema-loader/ +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: gradle_check_reports +# path: /tmp/gradle_test_reports +# +# - name: Save SpotBugs reports +# if: always() +# run: | +# mkdir -p /tmp/gradle_spotbugs_reports/core +# mkdir -p /tmp/gradle_spotbugs_reports/server +# mkdir -p /tmp/gradle_spotbugs_reports/schema-loader +# mkdir -p /tmp/gradle_spotbugs_reports/integration-test +# cp -a core/build/reports/spotbugs /tmp/gradle_spotbugs_reports/core/ +# cp -a server/build/reports/spotbugs /tmp/gradle_spotbugs_reports/server/ +# cp -a schema-loader/build/reports/spotbugs /tmp/gradle_spotbugs_reports/schema-loader/ +# cp -a integration-test/build/reports/spotbugs /tmp/gradle_spotbugs_reports/integration-test/ +# +# - name: Upload Spotbugs reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: gradle_spotbugs_reports +# path: /tmp/gradle_spotbugs_reports +# +# dockerfile-lint: +# name: Lint dockerfiles +# runs-on: ubuntu-latest +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Dockerfile Lint for ScalarDB Server +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: ':server:dockerfileLint' +# +# - name: Dockerfile Lint for ScalarDB Schema Loader +# if: always() +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: ':schema-loader:dockerfileLint' +# +# build-check-example-project: +# name: Build check for 'Getting Started' example project +# runs-on: ubuntu-latest +# +# defaults: +# run: +# working-directory: docs/getting-started +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Setup Gradle +# uses: gradle/actions/setup-gradle@v3 +# +# - name: Build Getting Started project +# run: ./gradlew assemble +# +# build-check-example-project-for-kotlin: +# name: Build check for 'Getting Started' example project for Kotlin +# runs-on: ubuntu-latest +# +# defaults: +# run: +# working-directory: docs/getting-started-kotlin +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Setup Gradle +# uses: gradle/actions/setup-gradle@v3 +# +# - name: Build Getting Started project +# run: ./gradlew assemble +# +# integration-test-for-cassandra-3-0: +# name: Cassandra 3.0 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# cassandra: +# image: cassandra:3.0 +# env: +# MAX_HEAP_SIZE: 2048m +# HEAP_NEWSIZE: 512m +# ports: +# - 9042:9042 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestCassandra' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestCassandra ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: cassandra_3.0_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestCassandra +# +# integration-test-for-cassandra-3-11: +# name: Cassandra 3.11 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# cassandra: +# image: cassandra:3.11 +# env: +# MAX_HEAP_SIZE: 2048m +# HEAP_NEWSIZE: 512m +# ports: +# - 9042:9042 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestCassandra' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestCassandra ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: cassandra_3.11_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestCassandra +# +# integration-test-for-cosmos: +# name: Cosmos DB integration test (${{ matrix.mode.label }}) +# runs-on: windows-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# $container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-windows") +# docker cp "${container_id}:oracle-jdk.exe" . +# docker rm "$container_id" +# Write-Host "Install Oracle JDK" +# Start-Process "oracle-jdk.exe" -NoNewWindow -Wait -ArgumentList "/s" +# Write-Host "Oracle JDK installation successful" +# if ( ${env:INT_TEST_JAVA_RUNTIME_VERSION} -eq '8' ) { +# $jdk_root_dir = "jdk-1.8" +# } else { +# $jdk_root_dir = "jdk-11" +# } +# echo "JAVA_HOME=C:\Program Files\Java\${jdk_root_dir}" >> ${env:GITHUB_ENV} +# +# - name: Start Azure Cosmos DB emulator +# run: | +# Write-Host "Launching Cosmos DB Emulator" +# Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator" +# Start-CosmosDbEmulator -Consistency Strong +# +# - name: Install TLS/SSL certificate +# run: | +# $cert = Get-ChildItem Cert:\LocalMachine\My | where{$_.FriendlyName -eq 'DocumentDbEmulatorCertificate'} +# $params = @{ +# Cert = $cert +# Type = "CERT" +# FilePath = "$home/tmp-cert.cer" +# NoClobber = $true +# } +# Export-Certificate @params +# certutil -encode $home/tmp-cert.cer $home/cosmosdbcert.cer +# Remove-Item $home/tmp-cert.cer +# # Setting the keystore option differs between Java 8 and Java 11+ +# if ( ${env:INT_TEST_JAVA_RUNTIME_VERSION} -eq '8' ) { +# $keystore = "-keystore", "${env:JAVA_HOME}/jre/lib/security/cacerts" +# } else { +# $keystore = "-cacerts" +# } +# & ${env:JAVA_HOME}/bin/keytool.exe $keystore -storepass 'changeit' -importcert -noprompt -alias cosmos_emulator -file $home/cosmosdbcert.cer +# & ${env:JAVA_HOME}/bin/keytool.exe $keystore -storepass 'changeit' -list -alias cosmos_emulator +# +# - name: Setup and execute Gradle 'integrationTestCosmos' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestCosmos -Dscalardb.cosmos.uri=https://localhost:8081/ -Dscalardb.cosmos.password=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== -Dfile.encoding=UTF-8 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: cosmos_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestCosmos +# +# integration-test-for-dynamo: +# name: DynamoDB integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# dynamodb: +# image: amazon/dynamodb-local:1.17.0 +# ports: +# - 8000:8000 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestDynamo' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestDynamo ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: dynamo_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestDynamo +# +# integration-test-for-jdbc-mysql-5-7: +# name: MySQL 5.7 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - name: Run MySQL 5.7 +# run: | +# docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin +# +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mysql_5.7_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-mysql-8-0: +# name: MySQL 8.0 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - name: Run MySQL 8.0 +# run: | +# docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin +# +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mysql_8.0_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-mysql-8-1: +# name: MySQL 8.1 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - name: Run MySQL 8.1 +# run: | +# docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:8.1 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin +# +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mysql_8.1_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-12: +# name: PostgreSQL 12 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:12-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: 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 || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_12_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-13: +# name: PostgreSQL 13 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:13-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: 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 || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_13_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-14: +# name: PostgreSQL 14 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:14-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: 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 || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_14_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-15: +# name: PostgreSQL 15 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:15-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: 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 || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_15_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-oracle-18: +# name: Oracle 18 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# oracle: +# image: ghcr.io/scalar-labs/oracle/db-prebuilt:18 +# credentials: +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# env: +# ORACLE_PWD: Oracle +# ports: +# - 1521:1521 +# options: >- +# --health-cmd "/opt/oracle/checkDBStatus.sh" +# --health-interval 10s +# --health-timeout 5s +# --health-retries 120 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: oracle_18_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-oracle-19: + name: Oracle 19 integration test (${{ matrix.mode.label }}) runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Setup and execute Gradle 'check' task - uses: gradle/gradle-build-action@v3 - with: - arguments: check buildSrc:check - - - name: Save Gradle test reports - if: always() - run: | - mkdir -p /tmp/gradle_test_reports/core - mkdir -p /tmp/gradle_test_reports/server - mkdir -p /tmp/gradle_test_reports/schema-loader - cp -a core/build/reports/tests/test /tmp/gradle_test_reports/core/ - cp -a server/build/reports/tests/test /tmp/gradle_test_reports/server/ - cp -a schema-loader/build/reports/tests/test /tmp/gradle_test_reports/schema-loader/ - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: gradle_check_reports - path: /tmp/gradle_test_reports - - - name: Save SpotBugs reports - if: always() - run: | - mkdir -p /tmp/gradle_spotbugs_reports/core - mkdir -p /tmp/gradle_spotbugs_reports/server - mkdir -p /tmp/gradle_spotbugs_reports/schema-loader - mkdir -p /tmp/gradle_spotbugs_reports/integration-test - cp -a core/build/reports/spotbugs /tmp/gradle_spotbugs_reports/core/ - cp -a server/build/reports/spotbugs /tmp/gradle_spotbugs_reports/server/ - cp -a schema-loader/build/reports/spotbugs /tmp/gradle_spotbugs_reports/schema-loader/ - cp -a integration-test/build/reports/spotbugs /tmp/gradle_spotbugs_reports/integration-test/ - - - name: Upload Spotbugs reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: gradle_spotbugs_reports - path: /tmp/gradle_spotbugs_reports - - dockerfile-lint: - name: Lint dockerfiles - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Dockerfile Lint for ScalarDB Server - uses: gradle/gradle-build-action@v3 - with: - arguments: ':server:dockerfileLint' - - - name: Dockerfile Lint for ScalarDB Schema Loader - if: always() - uses: gradle/gradle-build-action@v3 - with: - arguments: ':schema-loader:dockerfileLint' - - build-check-example-project: - name: Build check for 'Getting Started' example project - runs-on: ubuntu-latest - - defaults: - run: - working-directory: docs/getting-started - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - - name: Build Getting Started project - run: ./gradlew assemble - - build-check-example-project-for-kotlin: - name: Build check for 'Getting Started' example project for Kotlin - runs-on: ubuntu-latest - - defaults: - run: - working-directory: docs/getting-started-kotlin - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - - name: Build Getting Started project - run: ./gradlew assemble - - integration-test-for-cassandra-3-0: - name: Cassandra 3.0 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - cassandra: - image: cassandra:3.0 - env: - MAX_HEAP_SIZE: 2048m - HEAP_NEWSIZE: 512m - ports: - - 9042:9042 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestCassandra' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestCassandra ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: cassandra_3.0_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestCassandra - - integration-test-for-cassandra-3-11: - name: Cassandra 3.11 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - cassandra: - image: cassandra:3.11 - env: - MAX_HEAP_SIZE: 2048m - HEAP_NEWSIZE: 512m - ports: - - 9042:9042 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestCassandra' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestCassandra ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: cassandra_3.11_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestCassandra - - integration-test-for-cosmos: - name: Cosmos DB integration test (${{ matrix.mode.label }}) - runs-on: windows-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - $container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-windows") - docker cp "${container_id}:oracle-jdk.exe" . - docker rm "$container_id" - Write-Host "Install Oracle JDK" - Start-Process "oracle-jdk.exe" -NoNewWindow -Wait -ArgumentList "/s" - Write-Host "Oracle JDK installation successful" - if ( ${env:INT_TEST_JAVA_RUNTIME_VERSION} -eq '8' ) { - $jdk_root_dir = "jdk-1.8" - } else { - $jdk_root_dir = "jdk-11" - } - echo "JAVA_HOME=C:\Program Files\Java\${jdk_root_dir}" >> ${env:GITHUB_ENV} - - - name: Start Azure Cosmos DB emulator - run: | - Write-Host "Launching Cosmos DB Emulator" - Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator" - Start-CosmosDbEmulator -Consistency Strong - - - name: Install TLS/SSL certificate - run: | - $cert = Get-ChildItem Cert:\LocalMachine\My | where{$_.FriendlyName -eq 'DocumentDbEmulatorCertificate'} - $params = @{ - Cert = $cert - Type = "CERT" - FilePath = "$home/tmp-cert.cer" - NoClobber = $true - } - Export-Certificate @params - certutil -encode $home/tmp-cert.cer $home/cosmosdbcert.cer - Remove-Item $home/tmp-cert.cer - # Setting the keystore option differs between Java 8 and Java 11+ - if ( ${env:INT_TEST_JAVA_RUNTIME_VERSION} -eq '8' ) { - $keystore = "-keystore", "${env:JAVA_HOME}/jre/lib/security/cacerts" - } else { - $keystore = "-cacerts" - } - & ${env:JAVA_HOME}/bin/keytool.exe $keystore -storepass 'changeit' -importcert -noprompt -alias cosmos_emulator -file $home/cosmosdbcert.cer - & ${env:JAVA_HOME}/bin/keytool.exe $keystore -storepass 'changeit' -list -alias cosmos_emulator - - - name: Setup and execute Gradle 'integrationTestCosmos' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestCosmos -Dscalardb.cosmos.uri=https://localhost:8081/ -Dscalardb.cosmos.password=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== -Dfile.encoding=UTF-8 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: cosmos_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestCosmos - - integration-test-for-dynamo: - name: DynamoDB integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - dynamodb: - image: amazon/dynamodb-local:1.17.0 - ports: - - 8000:8000 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestDynamo' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestDynamo ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: dynamo_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestDynamo - - integration-test-for-jdbc-mysql-5-7: - name: MySQL 5.7 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - name: Run MySQL 5.7 - run: | - docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin - - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mysql_5.7_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-mysql-8-0: - name: MySQL 8.0 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - name: Run MySQL 8.0 - run: | - docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin - - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mysql_8.0_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-mysql-8-1: - name: MySQL 8.1 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - name: Run MySQL 8.1 - run: | - docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:8.1 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin - - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mysql_8.1_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-12: - name: PostgreSQL 12 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:12-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: 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 || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_12_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-13: - name: PostgreSQL 13 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:13-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: 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 || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_13_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-14: - name: PostgreSQL 14 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:14-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: 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 || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_14_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-15: - name: PostgreSQL 15 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:15-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: 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 || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_15_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-oracle-18: - name: Oracle 18 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - oracle: - image: ghcr.io/scalar-labs/oracle/db-prebuilt:18 - credentials: - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - env: - ORACLE_PWD: Oracle - ports: - - 1521:1521 - options: >- - --health-cmd "/opt/oracle/checkDBStatus.sh" - --health-interval 10s - --health-timeout 5s - --health-retries 120 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: oracle_18_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-oracle-21: - name: Oracle 21 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - oracle: - image: ghcr.io/scalar-labs/oracle/db-prebuilt:21 - credentials: - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - env: - ORACLE_PWD: Oracle - ports: - - 1521:1521 - options: >- - --health-cmd "/opt/oracle/checkDBStatus.sh" - --health-interval 10s - --health-timeout 5s - --health-retries 120 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: oracle_21_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-oracle-23: - name: Oracle 23 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - name: Free up ~14GB of disk space by removing the Android SDK - run: | - echo "Storage available before deletion" - df -h / - echo - sudo rm -r /usr/local/lib/android - echo "Storage available after deletion" - df -h / - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Start Oracle 23 container - run: docker run -d --name oracle-23 -p 1521:1521 ghcr.io/scalar-labs/oracle/db-prebuilt:23 - - - name: Wait for the container to be ready - timeout-minutes: 5 - run : | - while [ "`docker inspect -f {{.State.Health.Status}} oracle-23`" != "healthy" ] - do - sleep 10 - echo "Container is not yet ready" - done - echo "Container is ready" - - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/FREEPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Stop Oracle 23 container - if: always() - run: docker stop oracle-23 | xargs docker rm - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: oracle_23_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-sqlserver-2017: - name: SQL Server 2017 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - sqlserver: - image: mcr.microsoft.com/mssql/server:2017-latest - env: - MSSQL_PID: "Express" - SA_PASSWORD: "SqlServer17" - ACCEPT_EULA: "Y" - ports: - - 1433:1433 - options: --name sqlserver17 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver17 SqlServer17 10 3 - timeout-minutes: 1 - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: sqlserver_2017_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-sqlserver-2019: - name: SQL Server 2019 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - sqlserver: - image: mcr.microsoft.com/mssql/server:2019-latest - env: - MSSQL_PID: "Express" - SA_PASSWORD: "SqlServer19" - ACCEPT_EULA: "Y" - ports: - - 1433:1433 - options: --name sqlserver19 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io + services: + oracle: + image: ghcr.io/scalar-labs/oracle/db-prebuilt:19 + credentials: username: ${{ github.repository_owner }} password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver19 SqlServer19 10 3 - timeout-minutes: 1 - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: sqlserver_2019_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-sqlserver-2022: - name: SQL Server 2022 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - services: - sqlserver: - image: mcr.microsoft.com/mssql/server:2022-latest env: - MSSQL_PID: "Express" - SA_PASSWORD: "SqlServer22" - ACCEPT_EULA: "Y" + ORACLE_PWD: Oracle ports: - - 1433:1433 - options: --name sqlserver22 + - 1521:1521 strategy: matrix: @@ -1267,64 +975,6 @@ jobs: - label: with_group_commit group_commit_enabled: true - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver22 SqlServer22 10 3 - timeout-minutes: 1 - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: sqlserver_2022_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-sqlite-3: - name: SQLite 3 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true steps: - uses: actions/checkout@v4 @@ -1357,23 +1007,499 @@ jobs: docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - name: Set up SQLite3 - run: sudo apt-get install -y sqlite3 - - name: Setup and execute Gradle 'integrationTestJdbc' task uses: gradle/gradle-build-action@v3 with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlite:integration.sqlite3?busy_timeout=50000 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/ORCLPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() uses: actions/upload-artifact@v4 with: - name: sqlite_3_integration_test_reports_${{ matrix.mode.label }} + name: oracle_19_integration_test_reports_${{ matrix.mode.label }} path: core/build/reports/tests/integrationTestJdbc - integration-test-for-jdbc-mariadb-10: - name: MariaDB 10 integration test (${{ matrix.mode.label }}) +# integration-test-for-jdbc-oracle-21: +# name: Oracle 21 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# oracle: +# image: ghcr.io/scalar-labs/oracle/db-prebuilt:21 +# credentials: +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# env: +# ORACLE_PWD: Oracle +# ports: +# - 1521:1521 +# options: >- +# --health-cmd "/opt/oracle/checkDBStatus.sh" +# --health-interval 10s +# --health-timeout 5s +# --health-retries 120 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: oracle_21_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-oracle-23: +# name: Oracle 23 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - name: Free up ~14GB of disk space by removing the Android SDK +# run: | +# echo "Storage available before deletion" +# df -h / +# echo +# sudo rm -r /usr/local/lib/android +# echo "Storage available after deletion" +# df -h / +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Start Oracle 23 container +# run: docker run -d --name oracle-23 -p 1521:1521 ghcr.io/scalar-labs/oracle/db-prebuilt:23 +# +# - name: Wait for the container to be ready +# timeout-minutes: 5 +# run : | +# while [ "`docker inspect -f {{.State.Health.Status}} oracle-23`" != "healthy" ] +# do +# sleep 10 +# echo "Container is not yet ready" +# done +# echo "Container is ready" +# +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:oracle:thin:@//localhost:1521/FREEPDB1 -Dscalardb.jdbc.username=SYSTEM -Dscalardb.jdbc.password=Oracle ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Stop Oracle 23 container +# if: always() +# run: docker stop oracle-23 | xargs docker rm +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: oracle_23_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-sqlserver-2017: +# name: SQL Server 2017 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# sqlserver: +# image: mcr.microsoft.com/mssql/server:2017-latest +# env: +# MSSQL_PID: "Express" +# SA_PASSWORD: "SqlServer17" +# ACCEPT_EULA: "Y" +# ports: +# - 1433:1433 +# options: --name sqlserver17 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Create no superuser +# run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver17 SqlServer17 10 3 +# timeout-minutes: 1 +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: sqlserver_2017_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-sqlserver-2019: +# name: SQL Server 2019 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# sqlserver: +# image: mcr.microsoft.com/mssql/server:2019-latest +# env: +# MSSQL_PID: "Express" +# SA_PASSWORD: "SqlServer19" +# ACCEPT_EULA: "Y" +# ports: +# - 1433:1433 +# options: --name sqlserver19 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Create no superuser +# run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver19 SqlServer19 10 3 +# timeout-minutes: 1 +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: sqlserver_2019_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-sqlserver-2022: +# name: SQL Server 2022 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# services: +# sqlserver: +# image: mcr.microsoft.com/mssql/server:2022-latest +# env: +# MSSQL_PID: "Express" +# SA_PASSWORD: "SqlServer22" +# ACCEPT_EULA: "Y" +# ports: +# - 1433:1433 +# options: --name sqlserver22 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Create no superuser +# run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver22 SqlServer22 10 3 +# timeout-minutes: 1 +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: sqlserver_2022_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-sqlite-3: +# name: SQLite 3 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Set up SQLite3 +# run: sudo apt-get install -y sqlite3 +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:sqlite:integration.sqlite3?busy_timeout=50000 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: sqlite_3_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-mariadb-10: +# name: MariaDB 10 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - name: Run MariaDB 10.11 +# run: | +# docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mariadb:10.11 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin +# +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mariadb_10_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-mariadb-11-4: + name: MariaDB 11.4 integration test (${{ matrix.mode.label }}) runs-on: ubuntu-latest strategy: @@ -1384,69 +1510,11 @@ jobs: - label: with_group_commit group_commit_enabled: true - steps: - - name: Run MariaDB 10.11 - run: | - docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mariadb:10.11 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin - - - uses: actions/checkout@v4 - - - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mariadb_10_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-yugabytedb-2: - name: YugabyteDB 2 integration test (${{ matrix.mode.label }}) - runs-on: ubuntu-latest - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - group_commit_enabled: true steps: - - name: Run YugabyteDB 2 + - name: Run MariaDB 11.4 run: | - docker run -p 5433:5433 -e YSQL_USER=yugabyte -e YSQL_PASSWORD=yugabyte -d yugabytedb/yugabyte:2.21.0.0-b545 bin/yugabyted start --background=false --master_flag="ysql_enable_db_catalog_version_mode=false" --tserver_flags="ysql_enable_db_catalog_version_mode=false" + docker run -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mariadb:11.4 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin - uses: actions/checkout@v4 @@ -1481,130 +1549,189 @@ jobs: - name: Setup and execute Gradle 'integrationTestJdbc' task uses: gradle/gradle-build-action@v3 with: - arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:yugabytedb://localhost:5433/ -Dscalardb.jdbc.username=yugabyte -Dscalardb.jdbc.password=yugabyte -Dscalar.db.jdbc.connection_pool.max_total=12 -Dscalar.db.jdbc.table_metadata.connection_pool.max_total=4 -Dscalar.db.jdbc.admin.connection_pool.max_total=4 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} + arguments: integrationTestJdbc ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - name: Upload Gradle test reports if: always() uses: actions/upload-artifact@v4 with: - name: yugabytedb_2_integration_test_reports_${{ matrix.mode.label }} + name: mariadb_11.4_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: - cassandra: - image: cassandra:3.11 - env: - MAX_HEAP_SIZE: 2048m - HEAP_NEWSIZE: 512m - ports: - - 9042:9042 - - strategy: - matrix: - mode: - - label: default - group_commit_enabled: false - - label: with_group_commit - 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 }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestMultiStorage' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestMultiStorage ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} - - - name: Upload Gradle test reports - uses: actions/upload-artifact@v4 - if : always() - with: - name: multi_storage_integration_test_reports_${{ matrix.mode.label }} - path: core/build/reports/tests/integrationTestMultiStorage - - integration-test-for-scalardb-server: - name: ScalarDB Server integration test - runs-on: ubuntu-latest - - 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 }}) - uses: actions/setup-java@v4 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: ${{ env.JAVA_VENDOR }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test - uses: actions/setup-java@v4 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} - with: - java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} - distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test - if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} - run: | - container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") - docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" - tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm - - - name: Setup and execute Gradle 'integrationTestScalarDbServer' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestScalarDbServer - - - name: Upload Gradle test reports - uses: actions/upload-artifact@v4 - if : always() - with: - name: scalardb_server_integration_test_reports - path: server/build/reports/tests/integrationTestScalarDbServer +# integration-test-for-jdbc-yugabytedb-2: +# name: YugabyteDB 2 integration test (${{ matrix.mode.label }}) +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# group_commit_enabled: true +# +# steps: +# - name: Run YugabyteDB 2 +# run: | +# docker run -p 5433:5433 -e YSQL_USER=yugabyte -e YSQL_PASSWORD=yugabyte -d yugabytedb/yugabyte:2.21.0.0-b545 bin/yugabyted start --background=false --master_flag="ysql_enable_db_catalog_version_mode=false" --tserver_flags="ysql_enable_db_catalog_version_mode=false" +# +# - uses: actions/checkout@v4 +# +# - name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc -Dscalardb.jdbc.url=jdbc:yugabytedb://localhost:5433/ -Dscalardb.jdbc.username=yugabyte -Dscalardb.jdbc.password=yugabyte -Dscalar.db.jdbc.connection_pool.max_total=12 -Dscalar.db.jdbc.table_metadata.connection_pool.max_total=4 -Dscalar.db.jdbc.admin.connection_pool.max_total=4 ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: yugabytedb_2_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: +# cassandra: +# image: cassandra:3.11 +# env: +# MAX_HEAP_SIZE: 2048m +# HEAP_NEWSIZE: 512m +# ports: +# - 9042:9042 +# +# strategy: +# matrix: +# mode: +# - label: default +# group_commit_enabled: false +# - label: with_group_commit +# 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 }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestMultiStorage' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestMultiStorage ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }} +# +# - name: Upload Gradle test reports +# uses: actions/upload-artifact@v4 +# if : always() +# with: +# name: multi_storage_integration_test_reports_${{ matrix.mode.label }} +# path: core/build/reports/tests/integrationTestMultiStorage +# +# integration-test-for-scalardb-server: +# name: ScalarDB Server integration test +# runs-on: ubuntu-latest +# +# 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 }}) +# uses: actions/setup-java@v4 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: ${{ env.JAVA_VENDOR }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test +# uses: actions/setup-java@v4 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}} +# with: +# java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} +# distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }} +# +# - name: Login to GitHub Container Registry +# uses: docker/login-action@v3 +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# with: +# registry: ghcr.io +# username: ${{ github.repository_owner }} +# password: ${{ secrets.CR_PAT }} +# +# - name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test +# if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}} +# run: | +# container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-linux") +# docker cp "$container_id:oracle-jdk.tar.gz" . && docker rm "$container_id" +# tar -xzf oracle-jdk.tar.gz -C /usr/lib/jvm +# +# - name: Setup and execute Gradle 'integrationTestScalarDbServer' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestScalarDbServer +# +# - name: Upload Gradle test reports +# uses: actions/upload-artifact@v4 +# if : always() +# with: +# name: scalardb_server_integration_test_reports +# path: server/build/reports/tests/integrationTestScalarDbServer