From d824f0d0375ed707bb8d8d5272dc074fde753175 Mon Sep 17 00:00:00 2001 From: kota2and3kan <47254383+kota2and3kan@users.noreply.github.com> Date: Thu, 29 Feb 2024 12:39:13 +0900 Subject: [PATCH 1/6] Add connection check and retry process to script that creates "no superuser" --- .github/workflows/ci.yaml | 6 ++-- .../create-no-superuser-sqlserver.sh | 34 ++++++++++++++++++- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7aabaf57c2..e2047aca85 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -610,7 +610,7 @@ jobs: distribution: 'temurin' - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver17 SqlServer17 + run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver17 SqlServer17 10 1 - name: Setup and execute Gradle 'integrationTestJdbc' task uses: gradle/gradle-build-action@v3 @@ -650,7 +650,7 @@ jobs: distribution: 'temurin' - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver19 SqlServer19 + run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver19 SqlServer19 10 1 - name: Setup and execute Gradle 'integrationTestJdbc' task uses: gradle/gradle-build-action@v3 @@ -690,7 +690,7 @@ jobs: distribution: 'temurin' - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver22 SqlServer22 + run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver22 SqlServer22 10 1 - name: Setup and execute Gradle 'integrationTestJdbc' task uses: gradle/gradle-build-action@v3 diff --git a/ci/no-superuser/create-no-superuser-sqlserver.sh b/ci/no-superuser/create-no-superuser-sqlserver.sh index 999417ac5d..f3790e6303 100755 --- a/ci/no-superuser/create-no-superuser-sqlserver.sh +++ b/ci/no-superuser/create-no-superuser-sqlserver.sh @@ -1,9 +1,40 @@ #!/bin/bash -set -eu +set -u # Get container name and password from arguments SQL_SERVER_CONTAINER_NAME=$1 SQL_SERVER_PASSWORD=$2 +MAX_RETRY_COUNT=$3 +RETRY_INTERVAL=$4 +COUNT=0 + +# A SQL Server container takes a few seconds to start SQL Server process +# in the container. So, first, we wait ${RETRY_INTERVAL} seconds before +# we run the `sqlcmd` command in the container. +echo "Sleep ${RETRY_INTERVAL} seconds to wait for SQL Server start." + +while [[ ${COUNT} -lt ${MAX_RETRY_COUNT} ]] +do + sleep ${RETRY_INTERVAL} + + echo "Retry count: ${COUNT}" + + docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d master -Q "SELECT 1" + if [[ $? -eq 0 ]]; then + break + else + echo "INFO: sqlcmd command failed. Will retry after ${RETRY_INTERVAL} seconds." + fi + + COUNT=$((COUNT + 1)) + + if [[ ${COUNT} -eq ${MAX_RETRY_COUNT} ]]; then + echo "ERROR: sqlcmd command failed ${MAX_RETRY_COUNT} times. Please check your configuration." >&2 + exit 1 + fi +done + +echo "INFO: sqlcmd command succeeded. Continue creating no superuser." # Create login docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE LOGIN no_superuser WITH PASSWORD = 'no_superuser_password', DEFAULT_DATABASE = master , CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF" @@ -21,3 +52,4 @@ docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S local # Check if no_superuser can access SQL Server (for debugging purposes) docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U no_superuser -P no_superuser_password -d test_db -Q "SELECT @@version" +echo "INFO: Creating no superuser succeeded." From ca51e982019326158ba7d97c2aae6ac8cce5c105 Mon Sep 17 00:00:00 2001 From: kota2and3kan <47254383+kota2and3kan@users.noreply.github.com> Date: Thu, 29 Feb 2024 13:12:46 +0900 Subject: [PATCH 2/6] Update username from SA to sa --- ci/no-superuser/create-no-superuser-sqlserver.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ci/no-superuser/create-no-superuser-sqlserver.sh b/ci/no-superuser/create-no-superuser-sqlserver.sh index f3790e6303..8a3c99778d 100755 --- a/ci/no-superuser/create-no-superuser-sqlserver.sh +++ b/ci/no-superuser/create-no-superuser-sqlserver.sh @@ -19,7 +19,7 @@ do echo "Retry count: ${COUNT}" - docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d master -Q "SELECT 1" + docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "SELECT 1" if [[ $? -eq 0 ]]; then break else @@ -37,18 +37,18 @@ done echo "INFO: sqlcmd command succeeded. Continue creating no superuser." # Create login -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE LOGIN no_superuser WITH PASSWORD = 'no_superuser_password', DEFAULT_DATABASE = master , CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE LOGIN no_superuser WITH PASSWORD = 'no_superuser_password', DEFAULT_DATABASE = master , CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF" # Create database -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE DATABASE test_db" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE DATABASE test_db" # Create no_superuser -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d test_db -Q "CREATE USER no_superuser FOR LOGIN no_superuser" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "CREATE USER no_superuser FOR LOGIN no_superuser" # Add roles -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_ddladmin', @membername = 'no_superuser'" -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_datawriter', @membername = 'no_superuser'" -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_datareader', @membername = 'no_superuser'" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_ddladmin', @membername = 'no_superuser'" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_datawriter', @membername = 'no_superuser'" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_datareader', @membername = 'no_superuser'" # Check if no_superuser can access SQL Server (for debugging purposes) docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U no_superuser -P no_superuser_password -d test_db -Q "SELECT @@version" From bbbf2225c79264ed9ac10dbee4a4e676f9d1d18c Mon Sep 17 00:00:00 2001 From: kota2and3kan <47254383+kota2and3kan@users.noreply.github.com> Date: Wed, 6 Mar 2024 18:55:16 +0900 Subject: [PATCH 3/6] Update CI to fix issues of SQL Server integration test --- .github/workflows/ci.yaml | 12 ++++---- .../create-no-superuser-sqlserver.sh | 30 +++++++++++++++++-- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e2047aca85..ccf0507833 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -595,7 +595,6 @@ jobs: MSSQL_PID: "Express" SA_PASSWORD: "SqlServer17" ACCEPT_EULA: "Y" - MSSQL_COLLATION: "Japanese_BIN2" ports: - 1433:1433 options: --name sqlserver17 @@ -610,7 +609,8 @@ jobs: distribution: 'temurin' - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver17 SqlServer17 10 1 + 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 @@ -635,7 +635,6 @@ jobs: MSSQL_PID: "Express" SA_PASSWORD: "SqlServer19" ACCEPT_EULA: "Y" - MSSQL_COLLATION: "Japanese_BIN2" ports: - 1433:1433 options: --name sqlserver19 @@ -650,7 +649,8 @@ jobs: distribution: 'temurin' - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver19 SqlServer19 10 1 + 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 @@ -675,7 +675,6 @@ jobs: MSSQL_PID: "Express" SA_PASSWORD: "SqlServer22" ACCEPT_EULA: "Y" - MSSQL_COLLATION: "Japanese_BIN2" ports: - 1433:1433 options: --name sqlserver22 @@ -690,7 +689,8 @@ jobs: distribution: 'temurin' - name: Create no superuser - run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver22 SqlServer22 10 1 + 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 diff --git a/ci/no-superuser/create-no-superuser-sqlserver.sh b/ci/no-superuser/create-no-superuser-sqlserver.sh index 8a3c99778d..5dbe43e4d7 100755 --- a/ci/no-superuser/create-no-superuser-sqlserver.sh +++ b/ci/no-superuser/create-no-superuser-sqlserver.sh @@ -8,16 +8,18 @@ MAX_RETRY_COUNT=$3 RETRY_INTERVAL=$4 COUNT=0 +echo "INFO: Creating no superuser start." + # A SQL Server container takes a few seconds to start SQL Server process # in the container. So, first, we wait ${RETRY_INTERVAL} seconds before # we run the `sqlcmd` command in the container. -echo "Sleep ${RETRY_INTERVAL} seconds to wait for SQL Server start." +echo "INFO: Sleep ${RETRY_INTERVAL} seconds to wait for SQL Server start." while [[ ${COUNT} -lt ${MAX_RETRY_COUNT} ]] do sleep ${RETRY_INTERVAL} - echo "Retry count: ${COUNT}" + echo "INFO: Retry count: ${COUNT}" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "SELECT 1" if [[ $? -eq 0 ]]; then @@ -37,19 +39,41 @@ done echo "INFO: sqlcmd command succeeded. Continue creating no superuser." # Create login +echo "INFO: Create login start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE LOGIN no_superuser WITH PASSWORD = 'no_superuser_password', DEFAULT_DATABASE = master , CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF" +echo "INFO: Create login end" # Create database -docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE DATABASE test_db" +echo "INFO: Create database start" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -Q "CREATE DATABASE test_db COLLATE Japanese_BIN2" +echo "INFO: Create database end" # Create no_superuser +echo "INFO: Create no_superuser start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "CREATE USER no_superuser FOR LOGIN no_superuser" +echo "INFO: Create no_superuser end" # Add roles +echo "INFO: Add role db_ddladmin start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_ddladmin', @membername = 'no_superuser'" +echo "INFO: Add role db_ddladmin end" + +echo "INFO: Add role db_datawriter start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_datawriter', @membername = 'no_superuser'" +echo "INFO: Add role db_datawriter end" + +echo "INFO: Add role db_datareader start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -Q "EXEC sp_addrolemember @rolename = 'db_datareader', @membername = 'no_superuser'" +echo "INFO: Add role db_datareader end" + +# Check the collation of test_db (for debugging purposes) +echo "INFO: SELECT @@version start" +docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U no_superuser -P no_superuser_password -d test_db -Q "SELECT name, collation_name FROM sys.databases" -W +echo "INFO: SELECT @@version end" # Check if no_superuser can access SQL Server (for debugging purposes) +echo "INFO: SELECT @@version start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U no_superuser -P no_superuser_password -d test_db -Q "SELECT @@version" +echo "INFO: SELECT @@version end" + echo "INFO: Creating no superuser succeeded." From ab91abc9f819faecf50b0e2bc4d51005f20b8212 Mon Sep 17 00:00:00 2001 From: kota2and3kan <47254383+kota2and3kan@users.noreply.github.com> Date: Wed, 6 Mar 2024 19:10:34 +0900 Subject: [PATCH 4/6] [skip ci] Fix typo --- ci/no-superuser/create-no-superuser-sqlserver.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/no-superuser/create-no-superuser-sqlserver.sh b/ci/no-superuser/create-no-superuser-sqlserver.sh index 5dbe43e4d7..99601010d1 100755 --- a/ci/no-superuser/create-no-superuser-sqlserver.sh +++ b/ci/no-superuser/create-no-superuser-sqlserver.sh @@ -67,9 +67,9 @@ docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S local echo "INFO: Add role db_datareader end" # Check the collation of test_db (for debugging purposes) -echo "INFO: SELECT @@version start" +echo "INFO: Check collation start" docker exec -t ${SQL_SERVER_CONTAINER_NAME} /opt/mssql-tools/bin/sqlcmd -S localhost -U no_superuser -P no_superuser_password -d test_db -Q "SELECT name, collation_name FROM sys.databases" -W -echo "INFO: SELECT @@version end" +echo "INFO: Check collation end" # Check if no_superuser can access SQL Server (for debugging purposes) echo "INFO: SELECT @@version start" From 3254d95219704ffb7d10011b53d76f87d7509ac1 Mon Sep 17 00:00:00 2001 From: kota2and3kan <47254383+kota2and3kan@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:27:33 +0900 Subject: [PATCH 5/6] [skip ci] Temporarily disable CI other than SQL Server --- .github/workflows/ci.yaml | 1388 ++++++++++++++++++------------------- 1 file changed, 694 insertions(+), 694 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ccf0507833..e8f158369f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,577 +12,577 @@ on: env: TERM: dumb jobs: - check: - name: Gradle check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'check' task - uses: gradle/gradle-build-action@v3 - with: - arguments: 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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' - - integration-test-for-cassandra-3-0: - name: Cassandra 3.0 integration test - runs-on: ubuntu-latest - - services: - cassandra: - image: cassandra:3.0 - env: - MAX_HEAP_SIZE: 2048m - HEAP_NEWSIZE: 512m - ports: - - 9042:9042 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestCassandra' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestCassandra - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: cassandra_3.0_integration_test_reports - path: core/build/reports/tests/integrationTestCassandra - - integration-test-for-cassandra-3-11: - name: Cassandra 3.11 integration test - runs-on: ubuntu-latest - - services: - cassandra: - image: cassandra:3.11 - env: - MAX_HEAP_SIZE: 2048m - HEAP_NEWSIZE: 512m - ports: - - 9042:9042 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestCassandra' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestCassandra - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: cassandra_3.11_integration_test_reports - path: core/build/reports/tests/integrationTestCassandra - - integration-test-for-cosmos: - name: Cosmos DB integration test - runs-on: self-hosted - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Generate unique prefix using the epoch - run: | - echo "db_prefix=$(date +%s%3N)" >> $GITHUB_ENV - - - name: Setup and execute Gradle 'integrationTestCosmos' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestCosmos -Dscalardb.cosmos.uri=${{ secrets.COSMOS_URI }} -Dscalardb.cosmos.password=${{ secrets.COSMOS_PASSWORD }} -Dscalardb.cosmos.database_prefix=${{ env.db_prefix }}_ - - - name : Delete gradle daemon log files - if: always() -# Delete all files modified more than 3 days ago with the ".out.log" file extension located in the "/home/azureuser/.gradle/daemon" -# folder hierarchy. These files accumulate over time and can end up using a lot of disk space - run : find /home/azureuser/.gradle/daemon -name "*.out.log" -type f -mtime +3 -exec rm -vf {} + - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: cosmos_integration_test_reports - path: core/build/reports/tests/integrationTestCosmos - - integration-test-for-dynamo: - name: DynamoDB integration test - runs-on: ubuntu-latest - - services: - dynamodb: - image: amazon/dynamodb-local:1.17.0 - ports: - - 8000:8000 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestDynamo' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestDynamo - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: dynamo_integration_test_reports - path: core/build/reports/tests/integrationTestDynamo - - integration-test-for-jdbc-mysql-5-7: - name: MySQL 5.7 integration test - runs-on: ubuntu-latest - - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mysql_5.7_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-mysql-8-0: - name: MySQL 8.0 integration test - runs-on: ubuntu-latest - - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mysql_8.0_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-mysql-8-1: - name: MySQL 8.1 integration test - runs-on: ubuntu-latest - - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mysql_8.1_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-12: - name: PostgreSQL 12 integration test - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:12-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_12_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-13: - name: PostgreSQL 13 integration test - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:13-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_13_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-14: - name: PostgreSQL 14 integration test - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:14-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_14_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-postgresql-15: - name: PostgreSQL 15 integration test - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:15-alpine - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: postgresql_15_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-oracle-18: - name: Oracle 18 integration test - 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 - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: oracle_18_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-oracle-21: - name: Oracle 21 integration test - 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 - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: oracle_21_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-oracle-23: - name: Oracle 23 integration test - runs-on: ubuntu-latest - - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - 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 - path: core/build/reports/tests/integrationTestJdbc +# check: +# name: Gradle check +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'check' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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' +# +# integration-test-for-cassandra-3-0: +# name: Cassandra 3.0 integration test +# runs-on: ubuntu-latest +# +# services: +# cassandra: +# image: cassandra:3.0 +# env: +# MAX_HEAP_SIZE: 2048m +# HEAP_NEWSIZE: 512m +# ports: +# - 9042:9042 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestCassandra' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestCassandra +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: cassandra_3.0_integration_test_reports +# path: core/build/reports/tests/integrationTestCassandra +# +# integration-test-for-cassandra-3-11: +# name: Cassandra 3.11 integration test +# runs-on: ubuntu-latest +# +# services: +# cassandra: +# image: cassandra:3.11 +# env: +# MAX_HEAP_SIZE: 2048m +# HEAP_NEWSIZE: 512m +# ports: +# - 9042:9042 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestCassandra' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestCassandra +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: cassandra_3.11_integration_test_reports +# path: core/build/reports/tests/integrationTestCassandra +# +# integration-test-for-cosmos: +# name: Cosmos DB integration test +# runs-on: self-hosted +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Generate unique prefix using the epoch +# run: | +# echo "db_prefix=$(date +%s%3N)" >> $GITHUB_ENV +# +# - name: Setup and execute Gradle 'integrationTestCosmos' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestCosmos -Dscalardb.cosmos.uri=${{ secrets.COSMOS_URI }} -Dscalardb.cosmos.password=${{ secrets.COSMOS_PASSWORD }} -Dscalardb.cosmos.database_prefix=${{ env.db_prefix }}_ +# +# - name : Delete gradle daemon log files +# if: always() +## Delete all files modified more than 3 days ago with the ".out.log" file extension located in the "/home/azureuser/.gradle/daemon" +## folder hierarchy. These files accumulate over time and can end up using a lot of disk space +# run : find /home/azureuser/.gradle/daemon -name "*.out.log" -type f -mtime +3 -exec rm -vf {} + +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: cosmos_integration_test_reports +# path: core/build/reports/tests/integrationTestCosmos +# +# integration-test-for-dynamo: +# name: DynamoDB integration test +# runs-on: ubuntu-latest +# +# services: +# dynamodb: +# image: amazon/dynamodb-local:1.17.0 +# ports: +# - 8000:8000 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestDynamo' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestDynamo +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: dynamo_integration_test_reports +# path: core/build/reports/tests/integrationTestDynamo +# +# integration-test-for-jdbc-mysql-5-7: +# name: MySQL 5.7 integration test +# runs-on: ubuntu-latest +# +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mysql_5.7_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-mysql-8-0: +# name: MySQL 8.0 integration test +# runs-on: ubuntu-latest +# +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mysql_8.0_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-mysql-8-1: +# name: MySQL 8.1 integration test +# runs-on: ubuntu-latest +# +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mysql_8.1_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-12: +# name: PostgreSQL 12 integration test +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:12-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_12_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-13: +# name: PostgreSQL 13 integration test +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:13-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_13_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-14: +# name: PostgreSQL 14 integration test +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:14-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_14_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-postgresql-15: +# name: PostgreSQL 15 integration test +# runs-on: ubuntu-latest +# +# services: +# postgres: +# image: postgres:15-alpine +# env: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: postgresql_15_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-oracle-18: +# name: Oracle 18 integration test +# 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 +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: oracle_18_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-oracle-21: +# name: Oracle 21 integration test +# 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 +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: oracle_21_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-oracle-23: +# name: Oracle 23 integration test +# runs-on: ubuntu-latest +# +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - 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 +# path: core/build/reports/tests/integrationTestJdbc integration-test-for-jdbc-sqlserver-2017: name: SQL Server 2017 integration test @@ -704,126 +704,126 @@ jobs: name: sqlserver_2022_integration_test_reports path: core/build/reports/tests/integrationTestJdbc - integration-test-for-jdbc-sqlite-3: - name: SQLite 3 integration test - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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 - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: sqlite_3_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-jdbc-mariadb-10: - name: MariaDB 10 integration test - runs-on: ubuntu-latest - - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestJdbc' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestJdbc - - - name: Upload Gradle test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: mariadb_10_integration_test_reports - path: core/build/reports/tests/integrationTestJdbc - - integration-test-for-multi-storage: - name: Multi-storage integration test - runs-on: ubuntu-latest - - services: - cassandra: - image: cassandra:3.11 - env: - MAX_HEAP_SIZE: 2048m - HEAP_NEWSIZE: 512m - ports: - - 9042:9042 - - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - name: Setup and execute Gradle 'integrationTestMultiStorage' task - uses: gradle/gradle-build-action@v3 - with: - arguments: integrationTestMultiStorage - - - name: Upload Gradle test reports - uses: actions/upload-artifact@v4 - if : always() - with: - name: multi_storage_integration_test_reports - 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 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - - - 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-sqlite-3: +# name: SQLite 3 integration test +# runs-on: ubuntu-latest +# +# steps: +# - uses: actions/checkout@v4 +# +# - name: Set up JDK 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: sqlite_3_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-jdbc-mariadb-10: +# name: MariaDB 10 integration test +# runs-on: ubuntu-latest +# +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestJdbc' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestJdbc +# +# - name: Upload Gradle test reports +# if: always() +# uses: actions/upload-artifact@v4 +# with: +# name: mariadb_10_integration_test_reports +# path: core/build/reports/tests/integrationTestJdbc +# +# integration-test-for-multi-storage: +# name: Multi-storage integration test +# runs-on: ubuntu-latest +# +# services: +# cassandra: +# image: cassandra:3.11 +# env: +# MAX_HEAP_SIZE: 2048m +# HEAP_NEWSIZE: 512m +# ports: +# - 9042:9042 +# +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - name: Setup and execute Gradle 'integrationTestMultiStorage' task +# uses: gradle/gradle-build-action@v3 +# with: +# arguments: integrationTestMultiStorage +# +# - name: Upload Gradle test reports +# uses: actions/upload-artifact@v4 +# if : always() +# with: +# name: multi_storage_integration_test_reports +# 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 8 +# uses: actions/setup-java@v4 +# with: +# java-version: '8' +# distribution: 'temurin' +# +# - 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 From e8371e1adb400ce791db9a70bb07b5b6942c88b9 Mon Sep 17 00:00:00 2001 From: kota2and3kan <47254383+kota2and3kan@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:54:09 +0900 Subject: [PATCH 6/6] Enable CI other than SQL Server --- .github/workflows/ci.yaml | 1388 ++++++++++++++++++------------------- 1 file changed, 694 insertions(+), 694 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e8f158369f..ccf0507833 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,577 +12,577 @@ on: env: TERM: dumb jobs: -# check: -# name: Gradle check -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'check' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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' -# -# integration-test-for-cassandra-3-0: -# name: Cassandra 3.0 integration test -# runs-on: ubuntu-latest -# -# services: -# cassandra: -# image: cassandra:3.0 -# env: -# MAX_HEAP_SIZE: 2048m -# HEAP_NEWSIZE: 512m -# ports: -# - 9042:9042 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestCassandra' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestCassandra -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: cassandra_3.0_integration_test_reports -# path: core/build/reports/tests/integrationTestCassandra -# -# integration-test-for-cassandra-3-11: -# name: Cassandra 3.11 integration test -# runs-on: ubuntu-latest -# -# services: -# cassandra: -# image: cassandra:3.11 -# env: -# MAX_HEAP_SIZE: 2048m -# HEAP_NEWSIZE: 512m -# ports: -# - 9042:9042 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestCassandra' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestCassandra -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: cassandra_3.11_integration_test_reports -# path: core/build/reports/tests/integrationTestCassandra -# -# integration-test-for-cosmos: -# name: Cosmos DB integration test -# runs-on: self-hosted -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Generate unique prefix using the epoch -# run: | -# echo "db_prefix=$(date +%s%3N)" >> $GITHUB_ENV -# -# - name: Setup and execute Gradle 'integrationTestCosmos' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestCosmos -Dscalardb.cosmos.uri=${{ secrets.COSMOS_URI }} -Dscalardb.cosmos.password=${{ secrets.COSMOS_PASSWORD }} -Dscalardb.cosmos.database_prefix=${{ env.db_prefix }}_ -# -# - name : Delete gradle daemon log files -# if: always() -## Delete all files modified more than 3 days ago with the ".out.log" file extension located in the "/home/azureuser/.gradle/daemon" -## folder hierarchy. These files accumulate over time and can end up using a lot of disk space -# run : find /home/azureuser/.gradle/daemon -name "*.out.log" -type f -mtime +3 -exec rm -vf {} + -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: cosmos_integration_test_reports -# path: core/build/reports/tests/integrationTestCosmos -# -# integration-test-for-dynamo: -# name: DynamoDB integration test -# runs-on: ubuntu-latest -# -# services: -# dynamodb: -# image: amazon/dynamodb-local:1.17.0 -# ports: -# - 8000:8000 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestDynamo' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestDynamo -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: dynamo_integration_test_reports -# path: core/build/reports/tests/integrationTestDynamo -# -# integration-test-for-jdbc-mysql-5-7: -# name: MySQL 5.7 integration test -# runs-on: ubuntu-latest -# -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestJdbc' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestJdbc -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: mysql_5.7_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-mysql-8-0: -# name: MySQL 8.0 integration test -# runs-on: ubuntu-latest -# -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestJdbc' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestJdbc -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: mysql_8.0_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-mysql-8-1: -# name: MySQL 8.1 integration test -# runs-on: ubuntu-latest -# -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestJdbc' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestJdbc -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: mysql_8.1_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-postgresql-12: -# name: PostgreSQL 12 integration test -# runs-on: ubuntu-latest -# -# services: -# postgres: -# image: postgres:12-alpine -# env: -# POSTGRES_USER: postgres -# POSTGRES_PASSWORD: postgres -# ports: -# - 5432:5432 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: postgresql_12_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-postgresql-13: -# name: PostgreSQL 13 integration test -# runs-on: ubuntu-latest -# -# services: -# postgres: -# image: postgres:13-alpine -# env: -# POSTGRES_USER: postgres -# POSTGRES_PASSWORD: postgres -# ports: -# - 5432:5432 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: postgresql_13_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-postgresql-14: -# name: PostgreSQL 14 integration test -# runs-on: ubuntu-latest -# -# services: -# postgres: -# image: postgres:14-alpine -# env: -# POSTGRES_USER: postgres -# POSTGRES_PASSWORD: postgres -# ports: -# - 5432:5432 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: postgresql_14_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-postgresql-15: -# name: PostgreSQL 15 integration test -# runs-on: ubuntu-latest -# -# services: -# postgres: -# image: postgres:15-alpine -# env: -# POSTGRES_USER: postgres -# POSTGRES_PASSWORD: postgres -# ports: -# - 5432:5432 -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: postgresql_15_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-oracle-18: -# name: Oracle 18 integration test -# 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 -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: oracle_18_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-oracle-21: -# name: Oracle 21 integration test -# 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 -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: oracle_21_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-oracle-23: -# name: Oracle 23 integration test -# runs-on: ubuntu-latest -# -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - 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 -# path: core/build/reports/tests/integrationTestJdbc + check: + name: Gradle check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'check' task + uses: gradle/gradle-build-action@v3 + with: + arguments: 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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' + + integration-test-for-cassandra-3-0: + name: Cassandra 3.0 integration test + runs-on: ubuntu-latest + + services: + cassandra: + image: cassandra:3.0 + env: + MAX_HEAP_SIZE: 2048m + HEAP_NEWSIZE: 512m + ports: + - 9042:9042 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestCassandra' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestCassandra + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: cassandra_3.0_integration_test_reports + path: core/build/reports/tests/integrationTestCassandra + + integration-test-for-cassandra-3-11: + name: Cassandra 3.11 integration test + runs-on: ubuntu-latest + + services: + cassandra: + image: cassandra:3.11 + env: + MAX_HEAP_SIZE: 2048m + HEAP_NEWSIZE: 512m + ports: + - 9042:9042 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestCassandra' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestCassandra + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: cassandra_3.11_integration_test_reports + path: core/build/reports/tests/integrationTestCassandra + + integration-test-for-cosmos: + name: Cosmos DB integration test + runs-on: self-hosted + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Generate unique prefix using the epoch + run: | + echo "db_prefix=$(date +%s%3N)" >> $GITHUB_ENV + + - name: Setup and execute Gradle 'integrationTestCosmos' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestCosmos -Dscalardb.cosmos.uri=${{ secrets.COSMOS_URI }} -Dscalardb.cosmos.password=${{ secrets.COSMOS_PASSWORD }} -Dscalardb.cosmos.database_prefix=${{ env.db_prefix }}_ + + - name : Delete gradle daemon log files + if: always() +# Delete all files modified more than 3 days ago with the ".out.log" file extension located in the "/home/azureuser/.gradle/daemon" +# folder hierarchy. These files accumulate over time and can end up using a lot of disk space + run : find /home/azureuser/.gradle/daemon -name "*.out.log" -type f -mtime +3 -exec rm -vf {} + + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: cosmos_integration_test_reports + path: core/build/reports/tests/integrationTestCosmos + + integration-test-for-dynamo: + name: DynamoDB integration test + runs-on: ubuntu-latest + + services: + dynamodb: + image: amazon/dynamodb-local:1.17.0 + ports: + - 8000:8000 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestDynamo' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestDynamo + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: dynamo_integration_test_reports + path: core/build/reports/tests/integrationTestDynamo + + integration-test-for-jdbc-mysql-5-7: + name: MySQL 5.7 integration test + runs-on: ubuntu-latest + + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestJdbc' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestJdbc + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: mysql_5.7_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-mysql-8-0: + name: MySQL 8.0 integration test + runs-on: ubuntu-latest + + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestJdbc' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestJdbc + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: mysql_8.0_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-mysql-8-1: + name: MySQL 8.1 integration test + runs-on: ubuntu-latest + + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestJdbc' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestJdbc + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: mysql_8.1_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-postgresql-12: + name: PostgreSQL 12 integration test + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:12-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: postgresql_12_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-postgresql-13: + name: PostgreSQL 13 integration test + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:13-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: postgresql_13_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-postgresql-14: + name: PostgreSQL 14 integration test + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:14-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: postgresql_14_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-postgresql-15: + name: PostgreSQL 15 integration test + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:15-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: postgresql_15_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-oracle-18: + name: Oracle 18 integration test + 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 + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: oracle_18_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-oracle-21: + name: Oracle 21 integration test + 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 + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: oracle_21_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-oracle-23: + name: Oracle 23 integration test + runs-on: ubuntu-latest + + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - 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 + path: core/build/reports/tests/integrationTestJdbc integration-test-for-jdbc-sqlserver-2017: name: SQL Server 2017 integration test @@ -704,126 +704,126 @@ jobs: name: sqlserver_2022_integration_test_reports path: core/build/reports/tests/integrationTestJdbc -# integration-test-for-jdbc-sqlite-3: -# name: SQLite 3 integration test -# runs-on: ubuntu-latest -# -# steps: -# - uses: actions/checkout@v4 -# -# - name: Set up JDK 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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 -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: sqlite_3_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-jdbc-mariadb-10: -# name: MariaDB 10 integration test -# runs-on: ubuntu-latest -# -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestJdbc' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestJdbc -# -# - name: Upload Gradle test reports -# if: always() -# uses: actions/upload-artifact@v4 -# with: -# name: mariadb_10_integration_test_reports -# path: core/build/reports/tests/integrationTestJdbc -# -# integration-test-for-multi-storage: -# name: Multi-storage integration test -# runs-on: ubuntu-latest -# -# services: -# cassandra: -# image: cassandra:3.11 -# env: -# MAX_HEAP_SIZE: 2048m -# HEAP_NEWSIZE: 512m -# ports: -# - 9042:9042 -# -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - name: Setup and execute Gradle 'integrationTestMultiStorage' task -# uses: gradle/gradle-build-action@v3 -# with: -# arguments: integrationTestMultiStorage -# -# - name: Upload Gradle test reports -# uses: actions/upload-artifact@v4 -# if : always() -# with: -# name: multi_storage_integration_test_reports -# 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 8 -# uses: actions/setup-java@v4 -# with: -# java-version: '8' -# distribution: 'temurin' -# -# - 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-sqlite-3: + name: SQLite 3 integration test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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 + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: sqlite_3_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-jdbc-mariadb-10: + name: MariaDB 10 integration test + runs-on: ubuntu-latest + + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestJdbc' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestJdbc + + - name: Upload Gradle test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: mariadb_10_integration_test_reports + path: core/build/reports/tests/integrationTestJdbc + + integration-test-for-multi-storage: + name: Multi-storage integration test + runs-on: ubuntu-latest + + services: + cassandra: + image: cassandra:3.11 + env: + MAX_HEAP_SIZE: 2048m + HEAP_NEWSIZE: 512m + ports: + - 9042:9042 + + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Setup and execute Gradle 'integrationTestMultiStorage' task + uses: gradle/gradle-build-action@v3 + with: + arguments: integrationTestMultiStorage + + - name: Upload Gradle test reports + uses: actions/upload-artifact@v4 + if : always() + with: + name: multi_storage_integration_test_reports + 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 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - 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