This is an automated email from the ASF dual-hosted git repository. jianglongtao pushed a commit to branch fix-33341 in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
commit 9419a4effdb88a7ed88e16e4d8d68d30b9370b55 Author: 孙念君 Nianjun Sun <[email protected]> AuthorDate: Wed Sep 4 11:31:29 2024 +0800 Add : add workflow dispatch action for e2e sql --- .github/workflows/workflow-dispatch-e2e-sql.yml | 123 ++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/.github/workflows/workflow-dispatch-e2e-sql.yml b/.github/workflows/workflow-dispatch-e2e-sql.yml new file mode 100644 index 00000000000..1df79db4dcc --- /dev/null +++ b/.github/workflows/workflow-dispatch-e2e-sql.yml @@ -0,0 +1,123 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +name: Workflow Dispatch - E2E SQL + +on: + workflow_dispatch: + +concurrency: + group: e2e-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3 -Dspotless.apply.skip=true + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1 + DEPENDENCY_PATH: $HOME/.m2/dbplus-engine-honor/${{ github.ref_name }}/repository/ + +jobs: + global-environment: + name: Import Global Environment + uses: ./.github/workflows/required-reusable.yml + + build-e2e-image: + name: Build E2E Image + needs: global-environment + runs-on: self-hosted-honor + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 11 + - uses: actions/cache@v4 + with: + path: ~/.m2/repository/dbplus-engine-honor/${{ github.ref_name }}/repository/ + key: ${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-maven-third-party-e2e-cache-${{ github.sha }} + restore-keys: | + ${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-maven-third-party-e2e-cache- + ${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-maven-third-party- + - name: Build E2E Image + run: ./mvnw -B clean install -am -pl test/e2e/sql -Pit.env.docker -DskipTests -Dspotless.apply.skip=true -Dmaven.repo.local=${{ env.DEPENDENCY_PATH }} + - name: Save E2E Image + run: docker save -o /tmp/dbplus-engine-honor/${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-proxy-test.tar apache/shardingsphere-proxy-test:latest + - uses: actions/upload-artifact@v4 + with: + name: e2e-image + path: /tmp/dbplus-engine-honor/${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-proxy-test.tar + retention-days: 10 + + e2e-sql: + name: E2E - SQL + needs: [ build-e2e-image, global-environment ] + if: ${{ needs.global-environment.outputs.GLOBAL_JOB_ENABLED == 'true' }} + runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: + max-parallel: 20 + fail-fast: false + matrix: + adapter: [ proxy, jdbc ] + mode: [ Standalone, Cluster ] + database: [ MySQL, PostgreSQL, openGauss ] + # Fix me #25051 + #scenario: [ dbtbl_with_readwrite_splitting, dbtbl_with_readwrite_splitting_and_encrypt, sharding_and_encrypt, encrypt_and_readwrite_splitting, encrypt_shadow, readwrite_splitting_and_shadow, sharding_and_shadow, sharding_encrypt_shadow, mask_encrypt, mask_sharding, mask_encrypt_sharding ] + scenario: [ empty_rules, rdl_empty_rules, passthrough, db, tbl, encrypt, readwrite_splitting, shadow, mask, dbtbl_with_readwrite_splitting_and_encrypt, sharding_and_encrypt, encrypt_and_readwrite_splitting, encrypt_shadow, readwrite_splitting_and_shadow, sharding_and_shadow, sharding_encrypt_shadow, mask_encrypt, mask_sharding, mask_encrypt_sharding, db_tbl_sql_federation, empty_storage_units ] + additional-options: [ '' ] + include: + - adapter: proxy + database: MySQL + scenario: passthrough + additional-options: '-Dmysql-connector-java.version=8.3.0' + exclude: + - adapter: jdbc + scenario: passthrough + - adapter: jdbc + mode: Cluster + - adapter: proxy + mode: Standalone + scenario: empty_rules + - adapter: proxy + mode: Standalone + scenario: rdl_empty_rules + - adapter: proxy + mode: Standalone + scenario: passthrough + - adapter: proxy + scenario: empty_storage_units + steps: + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + path: ~/.m2/repository/dbplus-engine-honor/${{ github.ref_name }}/repository/ + key: ${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-maven-third-party-e2e-cache-${{ github.sha }} + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 11 + - name: Download E2E Image + if: matrix.adapter == 'proxy' + uses: actions/download-artifact@v4 + with: + name: e2e-image + path: /tmp/dbplus-engine-honor/ + - name: Load E2E Image + if: matrix.adapter == 'proxy' + run: docker load -i /tmp/dbplus-engine-honor/${{ needs.global-environment.outputs.GLOBAL_CACHE_PREFIX }}-proxy-test.tar + - name: Run E2E Test + run: ./mvnw -nsu -B install -f test/e2e/sql/pom.xml -Dspotless.apply.skip=true -Dit.cluster.env.type=DOCKER -Dit.cluster.adapters=${{ matrix.adapter }} -Dit.run.modes=${{ matrix.mode }} -Dit.run.additional.cases=false -Dit.scenarios=${{ matrix.scenario }} -Dit.cluster.databases=${{ matrix.database }} ${{ matrix.additional-options }} -Dmaven.repo.local=${{ env.DEPENDENCY_PATH }}
