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 15:33:29 UTC

[skywalking] branch master updated: [CI] Reorganize the Plugin Tests to speed up the PR checks (#4566)

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

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new e7f66c9  [CI] Reorganize the Plugin Tests to speed up the PR checks (#4566)
e7f66c9 is described below

commit e7f66c911eaf18a14793e5edf09788cb5f391f29
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Tue Mar 24 23:33:15 2020 +0800

    [CI] Reorganize the Plugin Tests to speed up the PR checks (#4566)
---
 .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 |  89 +++++
 .github/workflows/plugins-test.yaml   | 646 ----------------------------------
 docs/en/guides/Plugin-test.md         |  52 +--
 6 files changed, 351 insertions(+), 681 deletions(-)

diff --git a/.github/workflows/plugins-test.0.yaml b/.github/workflows/plugins-test.0.yaml
new file mode 100644
index 0000000..80a2788
--- /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
+    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..d6d5061
--- /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
+    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..a04095c
--- /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
+    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..2f346bb
--- /dev/null
+++ b/.github/workflows/plugins-test.3.yaml
@@ -0,0 +1,89 @@
+# 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
+    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 }}
+
+  Oracle:
+    name: Oracle
+    runs-on: ubuntu-18.04
+    timeout-minutes: 90
+    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: Oracle 10.2.0.4.0 (1)
+        run: |
+          curl -O https://skyapm.github.io/ci-assist/jars/ojdbc14-10.2.0.4.0.jar
+          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
+          ./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
+          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
diff --git a/docs/en/guides/Plugin-test.md b/docs/en/guides/Plugin-test.md
index 81c46f7..a739ebd 100644
--- a/docs/en/guides/Plugin-test.md
+++ b/docs/en/guides/Plugin-test.md
@@ -1,11 +1,11 @@
 # Plugin automatic test framework
 
-Plugin test frameworks is designed for verifying the plugin function and compatible status. As there are dozens of plugins and
-hundreds versions need to be verified, it is impossible to do manually.
+Plugin test framework is designed for verifying the plugins' function and compatible status. As there are dozens of plugins and
+hundreds of versions need to be verified, it is impossible to do manually.
 The test framework uses container based tech stack, requires a set of real services with agent installed, then the test mock
-OAP backend is running to check the segment and register data sent from agents.
+OAP backend is running to check the segments and register data sent from agents.
 
-Every plugin maintained in the main repo is required having its test cases, also matching the versions in the supported list doc. 
+Every plugin maintained in the main repo requires corresponding test cases, also matching the versions in the supported list doc.
 
 ## Environment Requirements
 
@@ -559,41 +559,23 @@ rather than recompiling it every time.
 
 Use `${SKYWALKING_HOME}/test/plugin/run.sh -h` to know more command options.
 
-If the local test passed, then you could add it to `.github/workflows/plugins-test.yaml` file, which will drive the tests running on the Github Action of official SkyWalking repository. Please check the prev agent related PRs, and add your case to the fastest group, in order to make the whole test finished as soon as possible.
+If the local test passed, then you could add it to `.github/workflows/plugins-test.<n>.yaml` file, which will drive the tests running on the Github Actions of official SkyWalking repository.
+Based on your plugin's name, please add the test case into file `.github/workflows/plugins-test.<n>.yaml`, by alphabetical orders.
 
-Every test case is a Github Action Step. Please use the scenario name, version range and version number to combine the name,
-take the existing one as a reference. 
+Every test case is a Github Actions Job. Please use the `<scenario name> + <version range> + (<supported version count>)` as the Job `title`, and the scenario directory as the Job `name`,
+mostly you'll just need to decide which file (`plugins-test.<n>.yaml`) to add your test case, and simply put one line (as follows) in it, take the existed cases as examples.
 
-For example:
-
-Here is a group named 'Kafka'. The latest step is Kafka scenario.
-```
-  Kafka:
+```yaml
+jobs:
+  PluginsTest:
+    name: Plugin
     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 clean package -DskipTests -Pagent >/dev/null
-      - name: Build the Docker image
-        run: ./mvnw -f test/plugin/pom.xml clean package -DskipTests docker:build -DBUILD_NO=local >/dev/null
-      - name: Run kafka 0.11.0.0-2.3.0 (16)
-        run: bash test/plugin/run.sh kafka-scenario
+      matrix:
+        case:
+          # ...
+          - { name: '<your case name>', title: '<PluginName, i.e. Spring> (<Supported Version Count, i.e 12>)' } # <<== insert one line by alphabetical orders
+          # ...
 ```