From b41260f277bf5501c23eeeceef81a464791754d6 Mon Sep 17 00:00:00 2001 From: mchades Date: Thu, 6 Jun 2024 15:13:29 +0800 Subject: [PATCH 1/2] optimize --- .../workflows/backend-integration-test.yml | 102 ++++++++++++--- .github/workflows/build.yml | 5 +- .github/workflows/cron-integration-test.yml | 15 ++- .github/workflows/flink-integration-test.yml | 47 +++++-- .../workflows/frontend-integration-test.yml | 8 +- .github/workflows/python-integration-test.yml | 3 +- .github/workflows/spark-integration-test.yml | 11 +- .github/workflows/trino-integration-test.yml | 119 ++++++++++++++++++ dev/ci/util_free_space.sh | 15 --- integration-test/build.gradle.kts | 55 ++++---- 10 files changed, 296 insertions(+), 84 deletions(-) create mode 100644 .github/workflows/trino-integration-test.yml diff --git a/.github/workflows/backend-integration-test.yml b/.github/workflows/backend-integration-test.yml index be5c0a620b0..4cfc4ab3f45 100644 --- a/.github/workflows/backend-integration-test.yml +++ b/.github/workflows/backend-integration-test.yml @@ -50,8 +50,7 @@ jobs: outputs: source_changes: ${{ steps.filter.outputs.source_changes }} - # Integration test for AMD64 architecture - test-amd64-arch: + catalog-it: needs: changes if: needs.changes.outputs.source_changes == 'true' runs-on: ubuntu-latest @@ -59,18 +58,18 @@ jobs: strategy: matrix: architecture: [linux/amd64] - java-version: [ 8, 11, 17 ] - test-mode: [ embedded, deploy ] - backend: [ jdbcBackend, kvBackend] + java-version: [ 8 ] + catalog: [ lakehouse-iceberg, hive, jdbc-doris, jdbc-mysql, jdbc-postgresql, hadoop, kafka ] env: PLATFORM: ${{ matrix.architecture }} steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: ${{ matrix.java-version }} distribution: 'temurin' + cache: 'gradle' - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -80,7 +79,6 @@ jobs: dev/ci/check_commands.sh - name: Package Gravitino - if : ${{ matrix.test-mode == 'deploy' }} run: | ./gradlew compileDistribution -x test -PjdkVersion=${{ matrix.java-version }} @@ -89,22 +87,26 @@ jobs: uses: csexton/debugger-action@master - name: Free up disk space + if : ${{ matrix.catalog == 'jdbc-doris' }} run: | dev/ci/util_free_space.sh - - name: Backend Integration Test - id: integrationTest - run: > - ./gradlew test --rerun-tasks -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -P${{ matrix.backend }} -PskipWebITs - -x :web:test -x :clients:client-python:test -x :flink-connector:test -x :spark-connector:test -x :spark-connector:spark-common:test - -x :spark-connector:spark-3.3:test -x :spark-connector:spark-3.4:test -x :spark-connector:spark-3.5:test - -x :spark-connector:spark-runtime-3.3:test -x :spark-connector:spark-runtime-3.4:test -x :spark-connector:spark-runtime-3.5:test + - name: Test catalog + id: catalogTest + run: | + for testMode in "embedded" "deploy" + do + echo "Run catalog it in ${testMode} mode with kvBackend" + ./gradlew :catalogs:catalog-${{ matrix.catalog }}:test -PskipTests -PtestMode=${testMode} -PjdkVersion=${{ matrix.java-version }} -PkvBackend + echo "Run catalog it in ${testMode} mode with jdbcBackend" + ./gradlew :catalogs:catalog-${{ matrix.catalog }}:test -PskipTests -PtestMode=${testMode} -PjdkVersion=${{ matrix.java-version }} -PjdbcBackend + done - name: Upload integrate tests reports uses: actions/upload-artifact@v3 - if: ${{ (failure() && steps.integrationTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} + if: ${{ (failure() && steps.catalogTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} with: - name: integrate-test-reports-${{ matrix.java-version }}-${{ matrix.test-mode }}-${{ matrix.backend }} + name: catalog-test-reports-${{ matrix.java-version }}-${{ matrix.catalog }} path: | build/reports integration-test/build/*.log @@ -116,3 +118,71 @@ jobs: catalogs/**/*.log catalogs/**/*.tar distribution/**/*.log + + integration-test: + needs: changes + if: needs.changes.outputs.source_changes == 'true' + runs-on: ubuntu-latest + timeout-minutes: 60 + strategy: + matrix: + architecture: [ linux/amd64 ] + java-version: [ 8 ] + env: + PLATFORM: ${{ matrix.architecture }} + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: 'temurin' + cache: 'gradle' + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Check required command + run: | + dev/ci/check_commands.sh + + - name: Package Gravitino + run: | + ./gradlew compileDistribution -x test -PjdkVersion=${{ matrix.java-version }} + + - name: Setup debug Github Action + if: ${{ contains(github.event.pull_request.labels.*.name, 'debug action') }} + uses: csexton/debugger-action@master + + - name: Free up disk space + if: ${{ matrix.catalog == 'jdbc-doris' }} + run: | + dev/ci/util_free_space.sh + + - name: Integration test + id: integrationTest + run: | + for testMode in "embedded" "deploy" + do + echo "Run integration test in ${testMode} mode with kvBackend" + ./gradlew :integration-test:test -PskipTrinoITs -PskipWebITs -PtestMode=${testMode} -PjdkVersion=${{ matrix.java-version }} -PkvBackend + echo "Run integration test in ${testMode} mode with jdbcBackend" + ./gradlew :integration-test:test -PskipTrinoITs -PskipWebITs -PtestMode=${testMode} -PjdkVersion=${{ matrix.java-version }} -PjdbcBackend + done + + - name: Upload integrate tests reports + uses: actions/upload-artifact@v3 + if: ${{ (failure() && steps.catalogTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} + with: + name: integrate-test-reports-${{ matrix.java-version }}-${{ matrix.catalog }} + path: | + build/reports + integration-test/build/*.log + integration-test/build/*.tar + integration-test/build/trino-ci-container-log/hive/*.* + integration-test/build/trino-ci-container-log/hdfs/*.* + distribution/package/logs/gravitino-server.out + distribution/package/logs/gravitino-server.log + catalogs/**/*.log + catalogs/**/*.tar + distribution/**/*.log \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4d37f21fa49..2090fc3a30b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -81,10 +81,11 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: ${{ matrix.java-version }} distribution: 'temurin' + cache: 'gradle' - name: Test publish to local run: ./gradlew publishToMavenLocal -x test -PjdkVersion=${{ matrix.java-version }} @@ -94,7 +95,7 @@ jobs: dev/ci/util_free_space.sh - name: Build with Gradle - run: ./gradlew build -PskipITs -PjdkVersion=${{ matrix.java-version }} + run: ./gradlew build -PskipITs -PjdkVersion=${{ matrix.java-version }} -x :clients:client-python:build - name: Upload unit tests report uses: actions/upload-artifact@v3 diff --git a/.github/workflows/cron-integration-test.yml b/.github/workflows/cron-integration-test.yml index b1086ea52cd..ce1dea782fe 100644 --- a/.github/workflows/cron-integration-test.yml +++ b/.github/workflows/cron-integration-test.yml @@ -1,4 +1,4 @@ -name: Cron Integration Test +name: Cron All Test # Controls when the workflow will run on: @@ -72,7 +72,6 @@ jobs: - name: Package Gravitino run: | - ./gradlew build -x test -PjdkVersion=${{ matrix.java-version }} ./gradlew compileDistribution -x test -PjdkVersion=${{ matrix.java-version }} - name: Setup debug Github Action @@ -83,16 +82,16 @@ jobs: run: | dev/ci/util_free_space.sh - - name: Integration Test - id: integrationTest + - name: All Test + id: allTest run: | - ./gradlew test --rerun-tasks -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} + ./gradlew test -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} - - name: Upload integrate tests reports + - name: Upload tests reports uses: actions/upload-artifact@v3 - if: ${{ failure() && steps.integrationTest.outcome == 'failure' }} + if: ${{ failure() && steps.allTest.outcome == 'failure' }} with: - name: integrate test reports + name: all test reports path: | build/reports integration-test/build/integration-test.log diff --git a/.github/workflows/flink-integration-test.yml b/.github/workflows/flink-integration-test.yml index 818618eebbc..562ae0570ae 100644 --- a/.github/workflows/flink-integration-test.yml +++ b/.github/workflows/flink-integration-test.yml @@ -56,16 +56,16 @@ jobs: strategy: matrix: architecture: [linux/amd64] - java-version: [ 8, 11, 17 ] env: PLATFORM: ${{ matrix.architecture }} steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: - java-version: ${{ matrix.java-version }} + java-version: '8' distribution: 'temurin' + cache: 'gradle' - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -76,8 +76,7 @@ jobs: - name: Package Gravitino run: | - ./gradlew build -x test -PjdkVersion=${{ matrix.java-version }} - ./gradlew compileDistribution -x test -PjdkVersion=${{ matrix.java-version }} + ./gradlew compileDistribution -x test -PjdkVersion=8 - name: Setup debug Github Action if: ${{ contains(github.event.pull_request.labels.*.name, 'debug action') }} @@ -87,15 +86,43 @@ jobs: run: | dev/ci/util_free_space.sh - - name: Flink Integration Test - id: integrationTest + - name: Flink Integration Test Java8 + id: integrationTestJava8 run: | - ./gradlew --rerun-tasks -PskipTests -PtestMode=embedded -PjdkVersion=${{ matrix.java-version }} :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - ./gradlew --rerun-tasks -PskipTests -PtestMode=deploy -PjdkVersion=${{ matrix.java-version }} :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=8 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=8 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" + + - uses: actions/setup-java@v4 + if: ${{ steps.integrationTestJava8.outcome == 'success' }} + with: + java-version: '11' + distribution: 'temurin' + cache: 'gradle' + + - name: Flink Integration Test Java11 + if: ${{ steps.integrationTestJava8.outcome == 'success' }} + id: integrationTestJava11 + run: | + ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=11 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=11 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" + + - uses: actions/setup-java@v4 + if: ${{ steps.integrationTestJava11.outcome == 'success' }} + with: + java-version: '17' + distribution: 'temurin' + cache: 'gradle' + + - name: Flink Integration Test Java17 + if: ${{ steps.integrationTestJava11.outcome == 'success' }} + id: integrationTestJava17 + run: | + ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=17 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=17 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - name: Upload integrate tests reports uses: actions/upload-artifact@v3 - if: ${{ (failure() && steps.integrationTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} + if: ${{ (failure() && steps.integrationTestJava17.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} with: name: flink-connector-integrate-test-reports-${{ matrix.java-version }} path: | diff --git a/.github/workflows/frontend-integration-test.yml b/.github/workflows/frontend-integration-test.yml index dfd192b36cd..3402d436b29 100644 --- a/.github/workflows/frontend-integration-test.yml +++ b/.github/workflows/frontend-integration-test.yml @@ -65,10 +65,11 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: ${{ matrix.java-version }} distribution: 'temurin' + cache: 'gradle' - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -79,7 +80,6 @@ jobs: - name: Package Gravitino run: | - ./gradlew build -x test -PjdkVersion=${{ matrix.java-version }} ./gradlew compileDistribution -x test -PjdkVersion=${{ matrix.java-version }} - name: Setup debug Github Action @@ -93,8 +93,8 @@ jobs: - name: Frontend Integration Test id: integrationTest run: | - ./gradlew --rerun-tasks -PskipTests -PtestMode=embedded -PjdkVersion=${{ matrix.java-version }} :integration-test:test --tests "com.datastrato.gravitino.integration.test.web.ui.**" - ./gradlew --rerun-tasks -PskipTests -PtestMode=deploy -PjdkVersion=${{ matrix.java-version }} :integration-test:test --tests "com.datastrato.gravitino.integration.test.web.ui.**" + ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=${{ matrix.java-version }} :integration-test:test --tests "com.datastrato.gravitino.integration.test.web.ui.**" + ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=${{ matrix.java-version }} :integration-test:test --tests "com.datastrato.gravitino.integration.test.web.ui.**" - name: Upload integrate tests reports uses: actions/upload-artifact@v3 diff --git a/.github/workflows/python-integration-test.yml b/.github/workflows/python-integration-test.yml index 95335a67661..f2e5fd4edd4 100644 --- a/.github/workflows/python-integration-test.yml +++ b/.github/workflows/python-integration-test.yml @@ -49,10 +49,11 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: ${{ matrix.java-version }} distribution: 'temurin' + cache: 'gradle' - name: Set up QEMU uses: docker/setup-qemu-action@v2 diff --git a/.github/workflows/spark-integration-test.yml b/.github/workflows/spark-integration-test.yml index 39bf66c5876..5500056df5c 100644 --- a/.github/workflows/spark-integration-test.yml +++ b/.github/workflows/spark-integration-test.yml @@ -56,7 +56,7 @@ jobs: strategy: matrix: architecture: [linux/amd64] - java-version: [ 8, 11, 17 ] + java-version: [ 8 ] scala-version: [ 2.12 ] test-mode: [ embedded, deploy ] env: @@ -64,10 +64,11 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: ${{ matrix.java-version }} distribution: 'temurin' + cache: 'gradle' - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -93,10 +94,10 @@ jobs: id: integrationTest run: | if [ "${{ matrix.scala-version }}" == "2.12" ];then - ./gradlew --rerun-tasks -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -PscalaVersion=${{ matrix.scala-version }} :spark-connector:spark-3.3:test --tests "com.datastrato.gravitino.spark.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -PscalaVersion=${{ matrix.scala-version }} :spark-connector:spark-3.3:test --tests "com.datastrato.gravitino.spark.connector.integration.test.**" fi - ./gradlew --rerun-tasks -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -PscalaVersion=${{ matrix.scala-version }} :spark-connector:spark-3.4:test --tests "com.datastrato.gravitino.spark.connector.integration.test.**" - ./gradlew --rerun-tasks -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -PscalaVersion=${{ matrix.scala-version }} :spark-connector:spark-3.5:test --tests "com.datastrato.gravitino.spark.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -PscalaVersion=${{ matrix.scala-version }} :spark-connector:spark-3.4:test --tests "com.datastrato.gravitino.spark.connector.integration.test.**" + ./gradlew -PskipTests -PtestMode=${{ matrix.test-mode }} -PjdkVersion=${{ matrix.java-version }} -PscalaVersion=${{ matrix.scala-version }} :spark-connector:spark-3.5:test --tests "com.datastrato.gravitino.spark.connector.integration.test.**" - name: Upload integrate tests reports uses: actions/upload-artifact@v3 diff --git a/.github/workflows/trino-integration-test.yml b/.github/workflows/trino-integration-test.yml new file mode 100644 index 00000000000..b8fa276fcb6 --- /dev/null +++ b/.github/workflows/trino-integration-test.yml @@ -0,0 +1,119 @@ +name: Trino Integration Test + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "main", "branch-*" ] + pull_request: + branches: [ "main", "branch-*" ] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + changes: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + source_changes: + - .github/** + - api/** + - bin/** + - catalogs/** + - clients/client-java/** + - clients/client-java-runtime/** + - clients/filesystem-hadoop3/** + - clients/filesystem-hadoop3-runtime/** + - common/** + - conf/** + - core/** + - dev/** + - gradle/** + - integration-test/** + - integration-test-common/** + - meta/** + - server/** + - server-common/** + - trino-connector/** + - web/** + - docs/open-api/** + - build.gradle.kts + - gradle.properties + - gradlew + - setting.gradle.kts + outputs: + source_changes: ${{ steps.filter.outputs.source_changes }} + + trino-it: + needs: changes + if: needs.changes.outputs.source_changes == 'true' + runs-on: ubuntu-latest + timeout-minutes: 60 + strategy: + matrix: + architecture: [linux/amd64] + java-version: [ 8 ] + env: + PLATFORM: ${{ matrix.architecture }} + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: 'temurin' + cache: 'gradle' + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Check required command + run: | + dev/ci/check_commands.sh + + - name: Package Gravitino + run: | + ./gradlew compileDistribution -x test -PjdkVersion=${{ matrix.java-version }} + + - name: Setup debug Github Action + if: ${{ contains(github.event.pull_request.labels.*.name, 'debug action') }} + uses: csexton/debugger-action@master + + - name: Free up disk space + if : ${{ matrix.catalog == 'jdbc-doris' }} + run: | + dev/ci/util_free_space.sh + + - name: Test catalog + id: catalogTest + run: | + for testMode in "embedded" "deploy" + do + echo "Run Trino it in ${testMode} mode with kvBackend" + ./gradlew -PskipTests -PtestMode=${testMode} -PjdkVersion=${{ matrix.java-version }} -PkvBackend :integration-test:test --tests "com.datastrato.gravitino.integration.test.trino.**" + echo "Run Trino it in ${testMode} mode with jdbcBackend" + ./gradlew -PskipTests -PtestMode=${testMode} -PjdkVersion=${{ matrix.java-version }} -PjdbcBackend :integration-test:test --tests "com.datastrato.gravitino.integration.test.trino.**" + done + + - name: Upload integrate tests reports + uses: actions/upload-artifact@v3 + if: ${{ (failure() && steps.catalogTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} + with: + name: integrate-test-reports-${{ matrix.java-version }}-${{ matrix.catalog }} + path: | + build/reports + integration-test/build/*.log + integration-test/build/*.tar + integration-test/build/trino-ci-container-log/hive/*.* + integration-test/build/trino-ci-container-log/hdfs/*.* + distribution/package/logs/gravitino-server.out + distribution/package/logs/gravitino-server.log + catalogs/**/*.log + catalogs/**/*.tar + distribution/**/*.log \ No newline at end of file diff --git a/dev/ci/util_free_space.sh b/dev/ci/util_free_space.sh index e26792cdced..5ff4a22b449 100755 --- a/dev/ci/util_free_space.sh +++ b/dev/ci/util_free_space.sh @@ -23,12 +23,6 @@ set -eux if [ "${GITHUB_ACTIONS}" = "true" ]; then df -h - echo "::group::/usr/local/*" - du -hsc /usr/local/* - echo "::endgroup::" - echo "::group::/usr/local/bin/*" - du -hsc /usr/local/bin/* - echo "::endgroup::" # ~1GB (From 1.2GB to 214MB) sudo rm -rf \ /usr/local/bin/aliyun \ @@ -45,17 +39,8 @@ if [ "${GITHUB_ACTIONS}" = "true" ]; then /usr/local/bin/pulumi* \ /usr/local/bin/stack \ /usr/local/bin/terraform || : - echo "::group::/usr/local/share/*" - du -hsc /usr/local/share/* - echo "::endgroup::" # 1.3GB sudo rm -rf /usr/local/share/powershell || : - echo "::group::/opt/*" - du -hsc /opt/* - echo "::endgroup::" - echo "::group::/opt/hostedtoolcache/*" - du -hsc /opt/hostedtoolcache/* - echo "::endgroup::" # 5.3GB sudo rm -rf /opt/hostedtoolcache/CodeQL || : # 1.4GB diff --git a/integration-test/build.gradle.kts b/integration-test/build.gradle.kts index a98608f999c..ca85f2e31f1 100644 --- a/integration-test/build.gradle.kts +++ b/integration-test/build.gradle.kts @@ -131,7 +131,13 @@ tasks.test { exclude("**/integration/test/web/ui/**") } - dependsOn(":trino-connector:jar") + val skipTrinoITs = project.hasProperty("skipTrinoITs") + if (skipTrinoITs) { + exclude("**/integration/test/trino/**") + } else { + dependsOn(":trino-connector:jar") + } + dependsOn(":catalogs:catalog-lakehouse-iceberg:jar", ":catalogs:catalog-lakehouse-iceberg:runtimeJars") dependsOn(":catalogs:catalog-jdbc-doris:jar", ":catalogs:catalog-jdbc-doris:runtimeJars") dependsOn(":catalogs:catalog-jdbc-mysql:jar", ":catalogs:catalog-jdbc-mysql:runtimeJars") @@ -148,30 +154,33 @@ tasks.test { environment("GRAVITINO_CI_DORIS_DOCKER_IMAGE", "datastrato/gravitino-ci-doris:0.1.3") environment("GRAVITINO_CI_RANGER_DOCKER_IMAGE", "datastrato/gravitino-ci-ranger:0.1.0") - copy { - from("${project.rootDir}/dev/docker/trino/conf") - into("build/trino-conf") - fileMode = 0b111101101 - } - - // Get current project version - val version = project.version.toString() - println("Current project version: $version") - - // Check whether this module has already built - val trinoConnectorBuildDir = project(":trino-connector").buildDir - if (trinoConnectorBuildDir.exists()) { - // Check the version gravitino related jars in build equal to the current project version - val invalidGravitinoJars = trinoConnectorBuildDir.resolve("libs").listFiles { _, name -> name.startsWith("gravitino") }?.filter { - val name = it.name - !name.endsWith(version + ".jar") + if (!skipTrinoITs) { + environment("GRAVITINO_CI_TRINO_DOCKER_IMAGE", "datastrato/gravitino-ci-trino:0.1.5") + copy { + from("${project.rootDir}/dev/docker/trino/conf") + into("build/trino-conf") + fileMode = 0b111101101 } - if (invalidGravitinoJars!!.isNotEmpty()) { - val message = "Found mismatched versions of gravitino jars in trino-connector/build/libs:\n" + - "${invalidGravitinoJars.joinToString(", ") { it.name }}\n" + - "The current version of the project is $version. Please clean the project and rebuild it." - throw GradleException(message) + // Get current project version + val version = project.version.toString() + println("Current project version: $version") + + // Check whether this module has already built + val trinoConnectorBuildDir = project(":trino-connector").buildDir + if (trinoConnectorBuildDir.exists()) { + // Check the version gravitino related jars in build equal to the current project version + val invalidGravitinoJars = trinoConnectorBuildDir.resolve("libs").listFiles { _, name -> name.startsWith("gravitino") }?.filter { + val name = it.name + !name.endsWith(version + ".jar") + } + + if (invalidGravitinoJars!!.isNotEmpty()) { + val message = "Found mismatched versions of gravitino jars in trino-connector/build/libs:\n" + + "${invalidGravitinoJars.joinToString(", ") { it.name }}\n" + + "The current version of the project is $version. Please clean the project and rebuild it." + throw GradleException(message) + } } } } From 51d2c6ee2f6fea89a5aa5e2ecb0a0ba42ff69613 Mon Sep 17 00:00:00 2001 From: mchades Date: Fri, 7 Jun 2024 17:45:15 +0800 Subject: [PATCH 2/2] remove unnecessary --- .../workflows/backend-integration-test.yml | 2 +- .github/workflows/flink-integration-test.yml | 30 +------------------ .github/workflows/trino-integration-test.yml | 2 +- 3 files changed, 3 insertions(+), 31 deletions(-) diff --git a/.github/workflows/backend-integration-test.yml b/.github/workflows/backend-integration-test.yml index 4cfc4ab3f45..5343a9591b7 100644 --- a/.github/workflows/backend-integration-test.yml +++ b/.github/workflows/backend-integration-test.yml @@ -174,7 +174,7 @@ jobs: uses: actions/upload-artifact@v3 if: ${{ (failure() && steps.catalogTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} with: - name: integrate-test-reports-${{ matrix.java-version }}-${{ matrix.catalog }} + name: integrate-test-reports-${{ matrix.java-version }} path: | build/reports integration-test/build/*.log diff --git a/.github/workflows/flink-integration-test.yml b/.github/workflows/flink-integration-test.yml index 562ae0570ae..746210438b3 100644 --- a/.github/workflows/flink-integration-test.yml +++ b/.github/workflows/flink-integration-test.yml @@ -92,37 +92,9 @@ jobs: ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=8 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=8 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - - uses: actions/setup-java@v4 - if: ${{ steps.integrationTestJava8.outcome == 'success' }} - with: - java-version: '11' - distribution: 'temurin' - cache: 'gradle' - - - name: Flink Integration Test Java11 - if: ${{ steps.integrationTestJava8.outcome == 'success' }} - id: integrationTestJava11 - run: | - ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=11 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=11 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - - - uses: actions/setup-java@v4 - if: ${{ steps.integrationTestJava11.outcome == 'success' }} - with: - java-version: '17' - distribution: 'temurin' - cache: 'gradle' - - - name: Flink Integration Test Java17 - if: ${{ steps.integrationTestJava11.outcome == 'success' }} - id: integrationTestJava17 - run: | - ./gradlew -PskipTests -PtestMode=embedded -PjdkVersion=17 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - ./gradlew -PskipTests -PtestMode=deploy -PjdkVersion=17 :flink-connector:test --tests "com.datastrato.gravitino.flink.connector.integration.test.**" - - name: Upload integrate tests reports uses: actions/upload-artifact@v3 - if: ${{ (failure() && steps.integrationTestJava17.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} + if: ${{ (failure() && steps.integrationTestJava8.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} with: name: flink-connector-integrate-test-reports-${{ matrix.java-version }} path: | diff --git a/.github/workflows/trino-integration-test.yml b/.github/workflows/trino-integration-test.yml index b8fa276fcb6..477595c2655 100644 --- a/.github/workflows/trino-integration-test.yml +++ b/.github/workflows/trino-integration-test.yml @@ -105,7 +105,7 @@ jobs: uses: actions/upload-artifact@v3 if: ${{ (failure() && steps.catalogTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} with: - name: integrate-test-reports-${{ matrix.java-version }}-${{ matrix.catalog }} + name: integrate-test-reports-${{ matrix.java-version }} path: | build/reports integration-test/build/*.log