You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/03/24 12:15:08 UTC

[skywalking] 01/01: [CI] Reorganize the Plugin Tests to speed up the PR checks

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch ci/re-orchestrate-plugin-tests
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 2a60da946a28e08205627f2edf280827b396c301
Author: kezhenxu94 <ke...@163.com>
AuthorDate: Tue Mar 24 20:14:22 2020 +0800

    [CI] Reorganize the Plugin Tests to speed up the PR checks
---
 .github/workflows/plugins-test.0.yaml |  82 +++++
 .github/workflows/plugins-test.1.yaml |  76 ++++
 .github/workflows/plugins-test.2.yaml |  87 +++++
 .github/workflows/plugins-test.3.yaml |  68 ++++
 .github/workflows/plugins-test.yaml   | 646 ----------------------------------
 5 files changed, 313 insertions(+), 646 deletions(-)

diff --git a/.github/workflows/plugins-test.0.yaml b/.github/workflows/plugins-test.0.yaml
new file mode 100644
index 0000000..c903f71
--- /dev/null
+++ b/.github/workflows/plugins-test.0.yaml
@@ -0,0 +1,82 @@
+# 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: PluginsTest
+
+on:
+  pull_request:
+    paths:
+      - '.github/workflows/plugins-test*.yaml'
+      - 'apm-application-toolkit/**'
+      - 'apm-commons/**'
+      - 'apm-protocol/**'
+      - 'apm-sniffer/**'
+      - 'test/plugin/**'
+      - '**/pom.xml'
+      - '!test/e2e/**'
+      - '!apm-webapp/**'
+      - '!apm-dist/**'
+      - '!apm-dist-es7/**'
+      - '!apm-docker/**'
+      - '!docs/**'
+      - '!oap-server/**'
+
+jobs:
+  PluginsTest:
+    name: Plugin Tests (A~G)
+    runs-on: ubuntu-18.04
+    timeout-minutes: 90
+    strategy:
+      fail-fast: true
+      matrix:
+        case:
+          - { name: 'activemq-scenario', title: 'ActiveMQ 5.10.0-5.15.4 (22)' }
+          - { name: 'apm-toolkit-trace-scenario', title: 'apm-toolkit-trace (1)' }
+          - { name: 'armeria-0.96minus-scenario', title: 'Armeria 0.63.0-0.95.0 (20)' }
+          - { name: 'armeria-0.96plus-scenario', title: 'Armeria 0.96.0-0.97.0 (2)' }
+          - { name: 'avro-scenario', title: 'Avro 1.7.0-1.8.2 (10)' }
+          - { name: 'canal-scenario', title: 'Canal 1.0.24-1.1.2 (5)' }
+          - { name: 'cassandra-java-driver-3.x-scenario', title: 'Cassandra 3.7.0-3.7.2 (3)' }
+          - { name: 'customize-scenario', title: 'customize (1)' }
+          - { name: 'dubbo-2.5.x-scenario', title: 'Dubbo 2.5.x-2.6.x (10)' }
+          - { name: 'dubbo-2.7.x-scenario', title: 'Dubbo 2.7.x (4)' }
+          - { name: 'ehcache-2.x-scenario', title: 'Ehcache 2.8.x-2.10.x (19)' }
+          - { name: 'elasticsearch-5.x-scenario', title: 'ElasticSearch 5.x (3)' }
+          - { name: 'elasticsearch-6.x-scenario', title: 'ElasticSearch 6.7.1-6.8.4 (7)' }
+          - { name: 'elasticsearch-7.x-scenario', title: 'ElasticSearch 7.0.0-7.5.2 (14)' }
+          - { name: 'feign-scenario', title: 'Feign 9.0.0-9.5.1 (8)' }
+          - { name: 'finagle-17.10.x-scenario', title: 'Finagle 17.10.0-20.1.0' }
+          - { name: 'finagle-6.25.x-scenario', title: 'Finagle 6.25.0-6.43.0' }
+          - { name: 'finagle-6.44.x-scenario', title: 'Finagle 6.44.0-7.1.0' }
+          - { name: 'gateway-scenario', title: 'Spring-Cloud-Gateway 2.1.x (3)' }
+          - { name: 'grpc-scenario', title: 'gRPC 1.6.0-1.25.0 (22)' }
+          - { name: 'gson-scenario', title: 'Gson (7)' }
+    steps:
+      - uses: actions/checkout@v2
+      - name: checkout submodules
+        shell: bash
+        run: |
+          git submodule sync --recursive
+          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
+      - uses: actions/setup-java@v1
+        with:
+          java-version: 8
+      - name: Build SkyWalking Agent
+        run: ./mvnw --batch-mode clean package -DskipTests -Pagent
+      - name: Build Docker image
+        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local
+      - name: ${{ matrix.case.title }}
+        run: bash test/plugin/run.sh ${{ matrix.case.name }}
diff --git a/.github/workflows/plugins-test.1.yaml b/.github/workflows/plugins-test.1.yaml
new file mode 100644
index 0000000..705a06f
--- /dev/null
+++ b/.github/workflows/plugins-test.1.yaml
@@ -0,0 +1,76 @@
+# 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: PluginsTest
+
+on:
+  pull_request:
+    paths:
+      - '.github/workflows/plugins-test*.yaml'
+      - 'apm-application-toolkit/**'
+      - 'apm-commons/**'
+      - 'apm-protocol/**'
+      - 'apm-sniffer/**'
+      - 'test/plugin/**'
+      - '**/pom.xml'
+      - '!test/e2e/**'
+      - '!apm-webapp/**'
+      - '!apm-dist/**'
+      - '!apm-dist-es7/**'
+      - '!apm-docker/**'
+      - '!docs/**'
+      - '!oap-server/**'
+
+jobs:
+  PluginsTest:
+    name: Plugin Tests (H~N)
+    runs-on: ubuntu-18.04
+    timeout-minutes: 90
+    strategy:
+      fail-fast: true
+      matrix:
+        case:
+          - { name: 'h2-scenario', title: 'H2 (24)' }
+          - { name: 'httpasyncclient-scenario', title: 'HttpAsyncClient 4.0-4.1.3 (7)' }
+          - { name: 'httpclient-3.x-scenario', title: 'HttpClient 2.0-3.1 (5)' }
+          - { name: 'httpclient-4.3.x-scenario', title: 'HttpClient 4.3.x-4.5.x (14)' }
+          - { name: 'hystrix-scenario', title: 'Hystrix 1.4.20-1.5.12 (20)' }
+          - { name: 'jdk-http-scenario', title: 'JDK http (1)' }
+          - { name: 'jdk-threading-scenario', title: 'JDK Threading (1)' }
+          - { name: 'jedis-scenario', title: 'Jedis 2.4.0-2.9.0 (18)' }
+          - { name: 'jetty-scenario', title: 'Jetty 9.x (63)' }
+          - { name: 'kafka-scenario', title: 'Kafka 0.11.0.0-2.3.0 (16)' }
+          - { name: 'kotlin-coroutine-scenario', title: 'Kotlin Coroutine 1.0.1-1.3.3 (4)' }
+          - { name: 'lettuce-scenario', title: 'Lettuce 5.x (17)' }
+          - { name: 'mongodb-3.x-scenario', title: 'Mongodb 3.4.0-3.11.1 (22)' }
+          - { name: 'mysql-scenario', title: 'MySQL 5.1.2-8.0.15 (53)' }
+          - { name: 'netty-socketio-scenario', title: 'Netty-SocketIO 1.x (4)' }
+    steps:
+      - uses: actions/checkout@v2
+      - name: checkout submodules
+        shell: bash
+        run: |
+          git submodule sync --recursive
+          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
+      - uses: actions/setup-java@v1
+        with:
+          java-version: 8
+      - name: Build SkyWalking Agent
+        run: ./mvnw --batch-mode clean package -DskipTests -Pagent
+      - name: Build Docker image
+        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local
+      - name: ${{ matrix.case.title }}
+        run: bash test/plugin/run.sh ${{ matrix.case.name }}
diff --git a/.github/workflows/plugins-test.2.yaml b/.github/workflows/plugins-test.2.yaml
new file mode 100644
index 0000000..f133544
--- /dev/null
+++ b/.github/workflows/plugins-test.2.yaml
@@ -0,0 +1,87 @@
+# 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: PluginsTest
+
+on:
+  pull_request:
+    paths:
+      - '.github/workflows/plugins-test*.yaml'
+      - 'apm-application-toolkit/**'
+      - 'apm-commons/**'
+      - 'apm-protocol/**'
+      - 'apm-sniffer/**'
+      - 'test/plugin/**'
+      - '**/pom.xml'
+      - '!test/e2e/**'
+      - '!apm-webapp/**'
+      - '!apm-dist/**'
+      - '!apm-dist-es7/**'
+      - '!apm-docker/**'
+      - '!docs/**'
+      - '!oap-server/**'
+
+jobs:
+  PluginsTest:
+    name: Plugin Tests (O~T)
+    runs-on: ubuntu-18.04
+    timeout-minutes: 90
+    strategy:
+      fail-fast: true
+      matrix:
+        case:
+          - { name: 'okhttp-scenario', title: 'OKHttp 3.0.x-3.14.x (34)' }
+          - { name: 'play-scenario', title: 'Play! Framework' }
+          - { name: 'postgresql-above9.4.1207-scenario', title: 'PostgreSQL 9.4.1207+ (62)' }
+          - { name: 'postgresql-scenario', title: 'PostgreSQL 9.2.x-9.4.x (36)' }
+          - { name: 'pulsar-scenario', title: 'Pulsar 2.2.0-2.4.1 (7)' }
+          - { name: 'rabbitmq-scenario', title: 'RabbitMQ (12)' }
+          - { name: 'redisson-scenario', title: 'Redisson 3.x (37)' }
+          - { name: 'resttemplate-4.x-scenario', title: 'RestTemplate 4.0.0.RELEASE-4.3.26.RELEASE (57)' }
+          - { name: 'servicecomb-0.x-scenario', title: 'ServiceComb 0.x (5)' }
+          - { name: 'servicecomb-1.x-scenario', title: 'ServiceComb 1.x (5)' }
+          - { name: 'shardingsphere-3.x-scenario', title: 'ShardingSphere 3.0.0 (1)' }
+          - { name: 'shardingsphere-4.x-RC1-RC2-scenario', title: 'ShardingSphere 4.0.0-RC1-4.0.0-RC2 (2)' }
+          - { name: 'shardingsphere-4.x-RC3-scenario', title: 'ShardingSphere 4.0.0-RC3 (1)' }
+          - { name: 'sofarpc-scenario', title: 'SofaRPC 5.4.0-5.6.2 (23)' }
+          - { name: 'solrj-7.x-scenario', title: 'SolrJ 7.x (12)' }
+          - { name: 'spring-3.0.x-scenario', title: 'Spring 3.0.x (8)' }
+          - { name: 'spring-3.1.x-scenario', title: 'Spring 3.1.x-4.0.x (25)' }
+          - { name: 'spring-4.1.x-scenario', title: 'Spring 4.1.x-4.2.x (20)' }
+          - { name: 'spring-4.3.x-scenario', title: 'Spring 4.3.x-5.2.x (54)' }
+          - { name: 'spring-async-scenario', title: 'Spring Async 4.3.x-5.1.x (35)' }
+          - { name: 'spring-cloud-feign-1.1.x-scenario', title: 'SpringCloud Feign 1.1.x (8)' }
+          - { name: 'spring-cloud-feign-1.2.x-scenario', title: 'SpringCloud Feign 1.2.x-1.4.x (23)' }
+          - { name: 'spring-cloud-feign-2.x-scenario', title: 'SpringCloud Feign 2.x (14)' }
+          - { name: 'spring-tx-scenario', title: 'Spring-tx 4.x+ (10)' }
+          - { name: 'struts2.3-scenario', title: 'Struts2.3 (35)' }
+          - { name: 'struts2.5-scenario', title: 'Struts2.5 (14)' }
+    steps:
+      - uses: actions/checkout@v2
+      - name: checkout submodules
+        shell: bash
+        run: |
+          git submodule sync --recursive
+          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
+      - uses: actions/setup-java@v1
+        with:
+          java-version: 8
+      - name: Build SkyWalking Agent
+        run: ./mvnw --batch-mode clean package -DskipTests -Pagent
+      - name: Build Docker image
+        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local
+      - name: ${{ matrix.case.title }}
+        run: bash test/plugin/run.sh ${{ matrix.case.name }}
\ No newline at end of file
diff --git a/.github/workflows/plugins-test.3.yaml b/.github/workflows/plugins-test.3.yaml
new file mode 100644
index 0000000..b200d6a
--- /dev/null
+++ b/.github/workflows/plugins-test.3.yaml
@@ -0,0 +1,68 @@
+# 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: PluginsTest
+
+on:
+  pull_request:
+    paths:
+      - '.github/workflows/plugins-test*.yaml'
+      - 'apm-application-toolkit/**'
+      - 'apm-commons/**'
+      - 'apm-protocol/**'
+      - 'apm-sniffer/**'
+      - 'test/plugin/**'
+      - '**/pom.xml'
+      - '!test/e2e/**'
+      - '!apm-webapp/**'
+      - '!apm-dist/**'
+      - '!apm-dist-es7/**'
+      - '!apm-docker/**'
+      - '!docs/**'
+      - '!oap-server/**'
+
+jobs:
+  PluginsTest:
+    name: Plugin Tests (U~Z)
+    runs-on: ubuntu-18.04
+    timeout-minutes: 90
+    strategy:
+      fail-fast: true
+      matrix:
+        case:
+          - { name: 'undertow-scenario', title: 'Undertow 1.3.0-2.0.27 (23)' }
+          - { name: 'webflux-scenario', title: 'Spring-WebFlux 2.x (7)' }
+          - { name: 'zookeeper-scenario', title: 'Zookeeper 3.4.x (14)' }
+    steps:
+      - uses: actions/checkout@v2
+      - name: checkout submodules
+        shell: bash
+        run: |
+          git submodule sync --recursive
+          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
+      - uses: actions/setup-java@v1
+        with:
+          java-version: 8
+      - name: Build SkyWalking Agent
+        run: ./mvnw --batch-mode clean package -DskipTests -Pagent
+      - name: Build Docker image
+        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local
+      - name: ${{ matrix.case.title }}
+        run: bash test/plugin/run.sh ${{ matrix.case.name }}
+      - name: Run oracle 10.2.0.4.0 (1)
+        run: |
+          curl -L -o ./skywalking-agent/plugins/apm-oracle-10.x-plugin-1.0.1.jar https://github.com/SkyAPM/java-plugin-extensions/releases/download/1.0.1/apm-oracle-10.x-plugin-1.0.1.jar
+          bash test/plugin/run.sh oracle-scenario
\ No newline at end of file
diff --git a/.github/workflows/plugins-test.yaml b/.github/workflows/plugins-test.yaml
deleted file mode 100644
index 4e5377d..0000000
--- a/.github/workflows/plugins-test.yaml
+++ /dev/null
@@ -1,646 +0,0 @@
-# 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: PluginsTest
-
-on:
-  pull_request:
-    paths:
-      - '**/pom.xml'
-      - 'apm-commons/**'
-      - 'apm-protocol/**'
-      - 'apm-sniffer/**'
-      - 'test/plugin/**'
-      - 'apm-application-toolkit/**'
-      - '.github/workflows/plugins-test.yaml'
-      - '!test/e2e/**'
-
-jobs:
-  Spring_Dubbo:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run spring-tx 4.x+ (10)
-        run: bash test/plugin/run.sh spring-tx-scenario
-      - name: Run dubbo 2.5.x-2.6.x (10)
-        run: bash test/plugin/run.sh dubbo-2.5.x-scenario
-      - name: Run dubbo 2.7.x (4)
-        run: bash test/plugin/run.sh dubbo-2.7.x-scenario
-      - name: Run okhttp 3.0.x-3.14.x (34)
-        run: bash test/plugin/run.sh okhttp-scenario
-
-  Spring31x_ES5_Gateway_Avro_Struts25:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run spring 3.1.x-4.0.x (25)
-        run: bash test/plugin/run.sh spring-3.1.x-scenario
-      - name: Run spring-cloud-gateway 2.1.x (3)
-        run: bash test/plugin/run.sh gateway-scenario
-      - name: Run elasticsearch 5.x (3)
-        run: bash test/plugin/run.sh elasticsearch-5.x-scenario
-      - name: Run avro 1.7.0-1.8.2 (10)
-        run: bash test/plugin/run.sh avro-scenario
-      - name: Run struts2.5-scenario (14)
-        run: bash test/plugin/run.sh struts2.5-scenario
-
-  Toolkit_Webflux_SocketIO_RabbitMQ_GSON:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run apm-toolkit-trace (1)
-        run: bash test/plugin/run.sh apm-toolkit-trace-scenario
-      - name: Run spring-webflux 2.x (7)
-        run: bash test/plugin/run.sh webflux-scenario
-      - name: Run netty-socketio 1.x (4)
-        run: bash test/plugin/run.sh netty-socketio-scenario
-      - name: Run rabbitmq-scenario (12)
-        run: bash test/plugin/run.sh rabbitmq-scenario
-      - name: Run gson-scenario (7)
-        run: bash test/plugin/run.sh gson-scenario
-
-  Feign_Canal_Armeria:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run feign 9.0.0-9.5.1 (8)
-        run: bash test/plugin/run.sh feign-scenario
-      - name: Run springcloud feign 1.1.x (8)
-        run: bash test/plugin/run.sh spring-cloud-feign-1.1.x-scenario
-      - name: Run springcloud feign 1.2.x-1.4.x (23)
-        run: bash test/plugin/run.sh spring-cloud-feign-1.2.x-scenario
-      - name: Run springcloud feign 2.x (14)
-        run: bash test/plugin/run.sh spring-cloud-feign-2.x-scenario
-      - name: Run customize (1)
-        run: bash test/plugin/run.sh customize-scenario
-      - name: Run canal 1.0.24-1.1.2 (5)
-        run: bash test/plugin/run.sh canal-scenario
-      - name: Run Pulsar 2.2.0-2.4.1 (7)
-        run: bash test/plugin/run.sh pulsar-scenario
-      - name: Run Armeria 0.63.0-0.95.0 (20)
-        run: bash test/plugin/run.sh armeria-0.96minus-scenario
-      - name: Run Armeria 0.96.0-0.97.0 (2)
-        run: bash test/plugin/run.sh armeria-0.96plus-scenario
-
-
-  Cassandra_Hystrix_SofaRPC_Spring30x:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run cassandra 3.7.0-3.7.2 (3)
-        run: bash test/plugin/run.sh cassandra-java-driver-3.x-scenario
-      - name: Run hystrix 1.4.20-1.5.12 (20)
-        run: bash test/plugin/run.sh hystrix-scenario
-      - name: Run sofarpc 5.4.0-5.6.2 (23)
-        run: bash test/plugin/run.sh sofarpc-scenario
-      - name: Run spring 3.0.x (8)
-        run: bash test/plugin/run.sh spring-3.0.x-scenario
-
-  SpringAsync_gRPC_KotlinCoroutine:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run spring async 4.3.x-5.1.x (35)
-        run: bash test/plugin/run.sh spring-async-scenario
-      - name: Run grpc 1.6.0-1.25.0 (22)
-        run: bash test/plugin/run.sh grpc-scenario
-      - name: Run kotlin coroutine 1.0.1-1.3.3 (4)
-        run: bash test/plugin/run.sh kotlin-coroutine-scenario
-
-  Ehcache_Undertow_Jedis_Finagle:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run ehcache 2.8.x-2.10.x (19)
-        run: bash test/plugin/run.sh ehcache-2.x-scenario
-      - name: Run undertow 1.3.0-2.0.27 (23)
-        run: bash test/plugin/run.sh undertow-scenario
-      - name: Run jedis 2.4.0-2.9.0 (18)
-        run: bash test/plugin/run.sh jedis-scenario
-      - name: Run finagle 6.25.0-6.43.0
-        run: bash test/plugin/run.sh finagle-6.25.x-scenario
-      - name: Run finagle 6.44.0-7.1.0
-        run: bash test/plugin/run.sh finagle-6.44.x-scenario
-      - name: Run finagle 17.10.0-20.1.0
-        run: bash test/plugin/run.sh finagle-17.10.x-scenario
-
-  Spring41x_Resttemplate-SolrJ-Http:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run spring 4.1.x-4.2.x (20)
-        run: bash test/plugin/run.sh spring-4.1.x-scenario
-      - name: Run resttemplate 4.0.0.RELEASE-4.3.26.RELEASE (57)
-        run: bash test/plugin/run.sh resttemplate-4.x-scenario
-      - name: Run solrj 7.x (12)
-        run: bash test/plugin/run.sh solrj-7.x-scenario
-      - name: Run httpclient 2.0-3.1 (5)
-        run: bash test/plugin/run.sh httpclient-3.x-scenario
-      - name: Run httpclient 4.3.x-4.5.x (14)
-        run: bash test/plugin/run.sh httpclient-4.3.x-scenario
-      - name: Run httpasyncclient 4.0-4.1.3 (7)
-        run: bash test/plugin/run.sh httpasyncclient-scenario
-
-  MongoDB:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run mongodb 3.4.0-3.11.1 (22)
-        run: bash test/plugin/run.sh mongodb-3.x-scenario
-
-  Redisson_ShardingSphere_Zookeeper:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run redisson 3.x (37)
-        run: bash test/plugin/run.sh redisson-scenario
-      - name: Run shardingsphere-3.x-scenario 3.0.0 (1)
-        run: bash test/plugin/run.sh shardingsphere-3.x-scenario
-      - name: Run shardingsphere-4.x-RC1-RC2-scenario 4.0.0-RC1-4.0.0-RC2 (2)
-        run: bash test/plugin/run.sh shardingsphere-4.x-RC1-RC2-scenario
-      - name: Run shardingsphere-4.x-RC3-scenario 4.0.0-RC3 (1)
-        run: bash test/plugin/run.sh shardingsphere-4.x-RC3-scenario
-      - name: Run zookeeper 3.4.x (14)
-        run: bash test/plugin/run.sh zookeeper-scenario
-
-  Spring43_Struts23:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run spring 4.3.x-5.2.x (54)
-        run: bash test/plugin/run.sh spring-4.3.x-scenario
-      - name: Run struts2.3-scenario (35)
-        run: bash test/plugin/run.sh struts2.3-scenario
-
-  PostgreSQL94:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run postgresql 9.4.1207+ (62)
-        run: bash test/plugin/run.sh postgresql-above9.4.1207-scenario
-
-  PostgreSQL92_ServiceComb:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run postgresql 9.2.x-9.4.x (36)
-        run: bash test/plugin/run.sh postgresql-scenario
-      - name: Run servicecomb 0.x (5)
-        run: bash test/plugin/run.sh servicecomb-0.x-scenario
-      - name: Run servicecomb 1.x (5)
-        run: bash test/plugin/run.sh servicecomb-1.x-scenario
-
-  Jetty:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run jetty 9.x (63)
-        run: bash test/plugin/run.sh jetty-scenario
-
-  ElasticSearch6_7:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run elasticsearch-7.x-scenario 7.0.0-7.5.2 (14)
-        run: bash test/plugin/run.sh elasticsearch-7.x-scenario
-      - name: Run elasticsearch-6.x-scenario 6.7.1-6.8.4 (7)
-        run: bash test/plugin/run.sh elasticsearch-6.x-scenario
-
-  Oracle_Activemq_Kafka_JdkHttp_JdkThreading:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Run oracle 10.2.0.4.0 (1)
-        run: |
-          curl -L -o ./skywalking-agent/plugins/apm-oracle-10.x-plugin-1.0.1.jar https://github.com/SkyAPM/java-plugin-extensions/releases/download/1.0.1/apm-oracle-10.x-plugin-1.0.1.jar
-          curl -O https://skyapm.github.io/ci-assist/jars/ojdbc14-10.2.0.4.0.jar
-          ./mvnw --batch-mode install:install-file  -Dfile=ojdbc14-10.2.0.4.0.jar  -DgroupId=com.oracle  -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar
-          ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-          bash test/plugin/run.sh oracle-scenario
-      - name: Run activemq 5.10.0-5.15.4 (22)
-        run: bash test/plugin/run.sh activemq-scenario
-      - name: Run kafka 0.11.0.0-2.3.0 (16)
-        run: bash test/plugin/run.sh kafka-scenario
-      - name: Run jdk http (1)
-        run: bash test/plugin/run.sh jdk-http-scenario
-      - name: Run jdk threading (1)
-        run: bash test/plugin/run.sh jdk-threading-scenario
-
-  MySQL:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run mysql 5.1.2-8.0.15 (53)
-        run: bash test/plugin/run.sh mysql-scenario
-
-  LETTUCE_PlayFramework_H2:
-    runs-on: ubuntu-18.04
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-    steps:
-      - uses: actions/checkout@v2
-      # In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
-      - name: checkout submodules
-        shell: bash
-        run: |
-          git submodule sync --recursive
-          git -c protocol.version=2 submodule update --init --force --recursive --depth=1
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: Build SkyWalking Agent
-        run: ./mvnw --batch-mode clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw --batch-mode -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run lettuce-scenario 5.x (17)
-        run: bash test/plugin/run.sh lettuce-scenario
-      - name: Run Play! Framework
-        run: bash test/plugin/run.sh play-scenario
-      - name: Run h2-scenario (24)
-        run: bash test/plugin/run.sh h2-scenario