You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2024/10/22 05:57:52 UTC
(shardingsphere) 16/43: Add : add workflow dispatch action for e2e sql
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 <su...@apache.org>
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 }}