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 2021/08/26 15:40:55 UTC

[skywalking-java] branch master created (now 57b8d00)

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

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


      at 57b8d00  Set up CI

This branch includes the following new commits:

     new 57b8d00  Set up CI

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[skywalking-java] 01/01: Set up CI

Posted by ke...@apache.org.
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-java.git

commit 57b8d00aa801d8be1cfc0c295f47d0140eb09dbd
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Thu Aug 26 23:40:46 2021 +0800

    Set up CI
---
 docker/ui/docker-entrypoint.sh => .dockerignore |  18 +-
 .github/ISSUE_TEMPLATE                          |  24 --
 .github/workflows/ci-it.yaml                    | 126 ++--------
 .github/workflows/docker-ci.yaml                |  95 -------
 .github/workflows/e2e.alarm.yaml                |  54 ----
 .github/workflows/e2e.cluster.yaml              |  63 -----
 .github/workflows/e2e.compat.yaml               |  53 ----
 .github/workflows/e2e.event.yaml                |  54 ----
 .github/workflows/e2e.go.yaml                   |  50 ----
 .github/workflows/e2e.istio.yaml                | 319 ------------------------
 .github/workflows/e2e.jdk-versions.yaml         |  66 -----
 .github/workflows/e2e.js.yaml                   |  69 -----
 .github/workflows/e2e.kafka.yaml                |  62 -----
 .github/workflows/e2e.log.yaml                  |  71 ------
 .github/workflows/e2e.nodejs.yaml               |  50 ----
 .github/workflows/e2e.php.yaml                  |  47 ----
 .github/workflows/e2e.profiling.yaml            |  55 ----
 .github/workflows/e2e.python.yaml               |  50 ----
 .github/workflows/e2e.so11y.yaml                |  50 ----
 .github/workflows/e2e.storages.yaml             |  61 -----
 .github/workflows/e2e.ttl.yaml                  |  55 ----
 .github/workflows/e2e.yaml                      |  84 -------
 .github/workflows/plugins-jdk14-test.0.yaml     |   2 +-
 .github/workflows/plugins-test.0.yaml           |   2 +-
 .github/workflows/plugins-test.1.yaml           |   2 +-
 .github/workflows/plugins-test.2.yaml           |   2 +-
 .github/workflows/plugins-test.3.yaml           |   2 +-
 .github/workflows/publish-docker.yaml           |  22 +-
 .gitignore                                      |   2 -
 .muse/config.toml                               |   2 -
 .muse/setup.sh                                  |   2 -
 docker/agent/Dockerfile.agent => Dockerfile     |  13 +-
 Makefile                                        |  97 +------
 docker/.env                                     |   2 -
 docker/README.md                                |  60 -----
 docker/docker-compose.yml                       |  64 -----
 docker/oap/Dockerfile.oap                       |  66 -----
 docker/oap/docker-entrypoint.sh                 |  42 ----
 docker/oap/log4j2.xml                           |  39 ---
 docker/ui/Dockerfile.ui                         |  40 ---
 docker/ui/logback.xml                           |  21 --
 pom.xml                                         |  84 +------
 tools/coverage/report.sh                        |  53 ----
 43 files changed, 63 insertions(+), 2132 deletions(-)

diff --git a/docker/ui/docker-entrypoint.sh b/.dockerignore
old mode 100755
new mode 100644
similarity index 67%
rename from docker/ui/docker-entrypoint.sh
rename to .dockerignore
index 807bb71..7eafa28
--- a/docker/ui/docker-entrypoint.sh
+++ b/.dockerignore
@@ -14,18 +14,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#!/bin/bash
-
-set -e
-
-export LOGGING_CONFIG="webapp/logback.xml"
-
-if [[ ! -z "$SW_OAP_ADDRESS" ]]; then
-  address_arr=(${SW_OAP_ADDRESS//,/ })
-  for i in "${!address_arr[@]}"
-  do
-      JAVA_OPTS="${JAVA_OPTS} -Dspring.cloud.discovery.client.simple.instances.oap-service[$i].uri=${address_arr[$i]}"
-  done
-fi
-
-exec java  ${JAVA_OPTS} -jar webapp/skywalking-webapp.jar "$@"
+*
+!skywalking-agent
+skywalking-agent/logs
diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE
deleted file mode 100644
index 8a70368..0000000
--- a/.github/ISSUE_TEMPLATE
+++ /dev/null
@@ -1,24 +0,0 @@
-Please answer these questions before submitting your issue.
-
-- Why do you submit this issue?
-- [ ] Question or discussion
-- [ ] Bug
-- [ ] Requirement
-- [ ] Feature or performance improvement
-
-___
-### Question
-- What do you want to know?
-
-___
-### Bug
-- Which version of SkyWalking, OS, and JRE?
-
-- Which company or project?
-
-- What happened?
-If possible, provide a way to reproduce the error. e.g. demo application, component version.
-
-___
-### Requirement or improvement
-- Please describe your requirements or improvement suggestions.
diff --git a/.github/workflows/ci-it.yaml b/.github/workflows/ci-it.yaml
index 2e871a1..342abcf 100644
--- a/.github/workflows/ci-it.yaml
+++ b/.github/workflows/ci-it.yaml
@@ -14,132 +14,54 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: CI AND IT
+name: CI
 
 on:
   pull_request:
   schedule:
     - cron: '0 18 * * *'  # TimeZone: UTC 0
 
-env:
-  MAVEN_OPTS: -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit
-  CODECOV_TOKEN: d2065307-8f01-4637-9715-2781ef096db7
-
 concurrency:
   group: ci-it-${{ github.event.pull_request.number || github.ref }}
   cancel-in-progress: true
 
 jobs:
   CI:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
+    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking-java') || (github.event_name != 'schedule')
+    runs-on: ${{ matrix.os }}-latest
+    timeout-minutes: 60
+    strategy:
+      fail-fast: true
+      matrix:
+        os: [ ubuntu, macos, windows ]
+        java-version: [ 8 ]
+        include:
+          - os: ubuntu
+            java-version: 11
     steps:
       - uses: actions/checkout@v2
         with:
           submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
       - name: Check License Header
-        if: env.SKIP_CI != 'true'
+        if: matrix.os == 'ubuntu' # Container GHA is only supported in Linux system
         uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       - name: Cache local Maven repository
-        if: env.SKIP_CI != 'true'
         uses: actions/cache@v2
         with:
           path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        if: env.SKIP_CI != 'true'
+          key: ${{ runner.os }}-maven-ci-${{ matrix.os }}
+          restore-keys: ${{ runner.os }}-maven-${{ matrix.os }}
+      - uses: actions/setup-java@v2
         with:
-          java-version: 8
-      - name: 'Check Javaagent Plugin List'
-        if: env.SKIP_CI != 'true'
+          distribution: adopt
+          java-version: ${{ matrix.java-version }}
+      - name: Check Javaagent Plugin List
         run: tools/plugin/check-javaagent-plugin-list.sh
-      - name: 'Install & Test'
-        if: env.SKIP_CI != 'true'
-        run: |
-          ./mvnw -q --batch-mode -P"agent,backend,ui,dist,CI-with-IT" clean cobertura:cobertura verify install javadoc:javadoc
-          bash <(curl -s https://codecov.io/bash)
-
-  CI-on-JDK11:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Check License Header
-        if: env.SKIP_CI != 'true'
-        uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
-      - name: Cache local Maven repository
-        if: env.SKIP_CI != 'true'
-        uses: actions/cache@v2
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        if: env.SKIP_CI != 'true'
-        with:
-          java-version: 11
-      - name: 'Install & Test'
-        if: env.SKIP_CI != 'true'
+      - name: Install and Test
+        if: matrix.java-version == '8'
+        run: ./mvnw -q --batch-mode clean verify install javadoc:javadoc
+      - name: Install and Test
+        if: matrix.java-version == '11'
         run: ./mvnw -q --batch-mode clean verify install
-
-  CI-on-Windows:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: windows-latest
-    timeout-minutes: 90
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - uses: actions/setup-java@v1
-        if: env.SKIP_CI != 'true'
-        with:
-          java-version: 8
-      - name: 'Install & Test'
-        if: env.SKIP_CI != 'true'
-        run: |
-          ./mvnw -q --batch-mode clean verify install
-
-
-  CI-on-MacOS:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: macos-latest
-    timeout-minutes: 90
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Cache local Maven repository
-        if: env.SKIP_CI != 'true'
-        uses: actions/cache@v2
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v1
-        if: env.SKIP_CI != 'true'
-        with:
-          java-version: 8
-      - name: 'Install & Test'
-        if: env.SKIP_CI != 'true'
-        run: |
-          # Given packaging on Mac has a high possibility to fail, we retry one more time here
-          ./mvnw -q --batch-mode clean verify install || \
-          ./mvnw -q --batch-mode clean verify install
diff --git a/.github/workflows/docker-ci.yaml b/.github/workflows/docker-ci.yaml
deleted file mode 100644
index a408b03..0000000
--- a/.github/workflows/docker-ci.yaml
+++ /dev/null
@@ -1,95 +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: docker-ci
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-concurrency:
-  group: docker-ci-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-env:
-  SKIP_TEST: true
-  DOCKER_DIR: ./docker
-  LOG_DIR: /tmp/skywalking
-jobs:
-  build:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-      matrix:
-        es: [es6, es7]
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Cache local Maven repository
-        uses: actions/cache@v2
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - uses: actions/cache@v1
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
-      - name: Build docker image
-        run: export ES_VERSION=${{ matrix.es }} && export TAG=${{ matrix.es }} && (make docker || make docker)
-      - name: Bootstrap cluster
-        run: |
-          case ${{ matrix.es }} in
-          es6) export ES_TAG=6.8.1 ;;
-          es7) export ES_TAG=7.5.0 ;;
-          esac
-
-          export TAG=${{ matrix.es }}
-          cd ${DOCKER_DIR} && docker-compose up -d
-      - name: Check port available
-        run: |
-          source ./test/scripts/env.sh
-          echo "Waiting for OAP ready"
-          export PORT=11800
-          check_sw_port
-          echo "OAP is ready"
-          echo "Waiting for UI ready"
-          PORT=8080
-          check_sw_port
-          echo "UI is ready"
-      - name: Collect logs
-        run: |
-          mkdir -p ${LOG_DIR}
-          cd ${DOCKER_DIR}
-          docker-compose logs oap > ${LOG_DIR}/oap.txt
-          docker-compose logs ui > ${LOG_DIR}/ui.txt
-          docker-compose logs elasticsearch > ${LOG_DIR}/es.txt
-        continue-on-error: true
-      - uses: actions/upload-artifact@v1.0.0
-        continue-on-error: true
-        with:
-          name: logs
-          path: /tmp/skywalking
diff --git a/.github/workflows/e2e.alarm.yaml b/.github/workflows/e2e.alarm.yaml
deleted file mode 100644
index 4404e8c..0000000
--- a/.github/workflows/e2e.alarm.yaml
+++ /dev/null
@@ -1,54 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-alarm-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  Alarm:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Alarm
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        storage: ['h2', 'mysql', 'es6', 'es7', 'influxdb', 'postgres']
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.alarm.AlarmE2E
diff --git a/.github/workflows/e2e.cluster.yaml b/.github/workflows/e2e.cluster.yaml
deleted file mode 100644
index fb46869..0000000
--- a/.github/workflows/e2e.cluster.yaml
+++ /dev/null
@@ -1,63 +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: E2E
-
-on:
-  pull_request:
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-cluster-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  CoordinatorsStorage:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Coordinators & Storage
-    timeout-minutes: 90
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        coordinator: ['zk']
-        storage: ['mysql', 'es6', 'es7', 'influxdb']
-    env:
-      SW_COORDINATOR: ${{ matrix.coordinator }}
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.ClusterE2E
-
-  Cluster:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    needs: [CoordinatorsStorage]
-    steps:
-      - name: Call me by your name
-        run: echo "Birds of a feather flock together"
diff --git a/.github/workflows/e2e.compat.yaml b/.github/workflows/e2e.compat.yaml
deleted file mode 100644
index 28e03fe..0000000
--- a/.github/workflows/e2e.compat.yaml
+++ /dev/null
@@ -1,53 +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: E2E
-
-on:
-  pull_request:
-  schedule:
-    - cron: '0 18 * * *'
-
-concurrency:
-  group: e2e-compat-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  Compatibility:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Compatibility
-    runs-on: ubuntu-latest
-    timeout-minutes: 60
-    env:
-      SW_SIMPLE_CASE: compat
-      SW_AGENT_JDK_VERSION: 11
-      SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk11:alpine
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Set Up Java
-        if: env.SKIP_CI != 'true'
-        uses: actions/setup-java@v1
-        with:
-          java-version: 11
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.compat.CompatE2E
diff --git a/.github/workflows/e2e.event.yaml b/.github/workflows/e2e.event.yaml
deleted file mode 100644
index 13abeb8..0000000
--- a/.github/workflows/e2e.event.yaml
+++ /dev/null
@@ -1,54 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-concurrency:
-  group: e2e-event-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-env:
-  SKIP_TEST: true
-
-jobs:
-  Event:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Event
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        storage: ['h2', 'mysql', 'es6', 'es7.0', 'influxdb']
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.event.EventE2E
diff --git a/.github/workflows/e2e.go.yaml b/.github/workflows/e2e.go.yaml
deleted file mode 100644
index c594d03..0000000
--- a/.github/workflows/e2e.go.yaml
+++ /dev/null
@@ -1,50 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-go-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  GOAgent:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: GO2SKY
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.GOE2E
diff --git a/.github/workflows/e2e.istio.yaml b/.github/workflows/e2e.istio.yaml
deleted file mode 100644
index c11e2ae..0000000
--- a/.github/workflows/e2e.istio.yaml
+++ /dev/null
@@ -1,319 +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: Istio
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SKIP_TEST: true
-  ES_VERSION: es7
-  TAG: ${{ github.sha }}
-  SCRIPTS_DIR: test/e2e-mesh/e2e-istio/scripts
-  SW_OAP_BASE_IMAGE: openjdk:11-jdk
-  SW_KUBERNETES_COMMIT_SHA: 6d5897616ce30ebb1706c0cf566ac36f733d93e0
-
-concurrency:
-  group: e2e-istio-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  als:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 60
-    strategy:
-      fail-fast: true
-      matrix:
-        analyzer: [k8s-mesh, mx-mesh]
-        istio_version: [1.7.1, 1.8.2, 1.9.1]
-    name: Istio(${{ matrix.istio_version }})+ALS(${{ matrix.analyzer }})
-    env:
-      ISTIO_VERSION: ${{ matrix.istio_version }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-
-      - name: Check Unintended Changes
-        run: |
-          echo "::group::Check sw.version"
-          sudo apt install -y -q xmlstarlet
-          SW_VERSION=$(xmlstarlet sel -N pom=http://maven.apache.org/POM/4.0.0 -t -v "/pom:project/pom:properties/pom:sw.version" test/e2e/pom.xml)
-          if [[ "$(echo $(echo $SW_VERSION))" != "" ]]; then
-            echo "::error Please don't submit the change of sw.version in test/e2e/pom.xml"
-            exit 1
-          fi
-          echo "::endgroup::"
-
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-
-      - uses: actions/cache@v2
-        if: env.SKIP_CI != 'true'
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: ${{ runner.os }}-maven-
-
-      - name: Build Docker Image
-        if: env.SKIP_CI != 'true'
-        run: make docker
-
-      - name: Prepare environment
-        if: env.SKIP_CI != 'true'
-        run: bash ${SCRIPTS_DIR}/pre.sh
-
-      - name: Install Minikube
-        if: env.SKIP_CI != 'true'
-        run: bash ${SCRIPTS_DIR}/minikube.sh start
-
-      - name: Install Istio
-        if: env.SKIP_CI != 'true'
-        run: bash ${SCRIPTS_DIR}/istio.sh --set profile=demo --set meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.istio-system:11800 --set meshConfig.enableEnvoyAccessLogService=true
-
-      - name: Install SkyWalking
-        if: env.SKIP_CI != 'true'
-        run: |
-          git clone https://github.com/apache/skywalking-kubernetes.git
-          cd skywalking-kubernetes
-          git reset --hard $SW_KUBERNETES_COMMIT_SHA
-          cd chart
-          mkdir -p skywalking/files/conf.d/oap/ && cp ../../test/e2e/e2e-test/src/test/resources/metadata-service-mapping.yaml skywalking/files/conf.d/oap/metadata-service-mapping.yaml
-          helm dep up skywalking
-          helm -n istio-system install skywalking skywalking \
-               --set fullnameOverride=skywalking \
-               --set elasticsearch.replicas=1 \
-               --set elasticsearch.minimumMasterNodes=1 \
-               --set elasticsearch.imageTag=7.5.1 \
-               --set oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=${{ matrix.analyzer }} \
-               --set oap.env.SW_ENVOY_METRIC_ALS_TCP_ANALYSIS=${{ matrix.analyzer }} \
-               --set oap.env.K8S_SERVICE_NAME_RULE='e2e::${service.metadata.name}' \
-               --set oap.envoy.als.enabled=true \
-               --set oap.replicas=1 \
-               --set ui.image.repository=skywalking/ui \
-               --set ui.image.tag=$TAG \
-               --set oap.image.tag=$TAG \
-               --set oap.image.repository=skywalking/oap \
-               --set oap.storageType=elasticsearch7
-          kubectl -n istio-system get pods
-
-          sleep 3
-          kubectl -n istio-system wait --for=condition=available deployments/skywalking-oap --timeout=1200s
-          kubectl get pods -A -o wide --show-labels
-          kubectl get services -A -o wide
-
-      - name: Deploy demo services
-        if: env.SKIP_CI != 'true'
-        run: |
-          bash ${SCRIPTS_DIR}/demo.sh
-          # Enable TCP services
-          kubectl apply -f https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo-ratings-v2.yaml
-          kubectl apply -f https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo-db.yaml
-          kubectl apply -f https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/destination-rule-all.yaml
-          kubectl apply -f https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/virtual-service-ratings-db.yaml
-
-      - name: Cluster Info
-        if: ${{ failure() }}
-        run: |
-          df -h
-          minikube logs
-          minikube status
-
-      - name: Set up Minikube tunnel
-        if: env.SKIP_CI != 'true'
-        run: |
-          mkdir /tmp/minikube-tunnel
-          minikube tunnel > /tmp/minikube-tunnel/a.log &
-          export POD_NAME=$(kubectl get pods -n istio-system -l "app=skywalking,release=skywalking,component=ui" -o jsonpath="{.items[0].metadata.name}")
-          echo $POD_NAME
-          kubectl -n istio-system port-forward $POD_NAME 8080:8080 > /tmp/minikube-tunnel/b.log &
-
-      - name: Run E2E test
-        if: env.SKIP_CI != 'true'
-        run: |
-          export GATEWAY_HOST=$(minikube ip)
-          export GATEWAY_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
-          export WEBAPP_HOST=127.0.0.1
-          export WEBAPP_PORT=8080
-
-          export SW_VERSION=$(./mvnw -q -DforceStdout -N org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version)
-
-          ./mvnw -q -DskipTests -N install
-          ./mvnw -q -f apm-application-toolkit -DskipTests -am install
-
-          ./mvnw -q --batch-mode -f test/e2e/pom.xml -am -DfailIfNoTests=false -Dsw.version=${SW_VERSION} verify -Dit.test=org.apache.skywalking.e2e.mesh.ALSE2E
-
-      - name: Logs
-        if: ${{ failure() }}
-        continue-on-error: true
-        run: |
-          kubectl -n istio-system logs --tail=10000 -l "app=skywalking,release=skywalking,component=ui"
-          kubectl -n istio-system logs --tail=10000 -l "app=skywalking,release=skywalking,component=oap"
-          cat /tmp/minikube-tunnel/*
-
-      - name: Clean up
-        if: env.SKIP_CI != 'true'
-        continue-on-error: true
-        run: minikube delete
-
-  metrics-service:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 60
-    name: Istio(${{ matrix.istio_version }})+MetricsService
-    strategy:
-      fail-fast: true
-      matrix:
-        istio_version: [1.8.2, 1.9.1]
-    env:
-      ISTIO_VERSION: ${{ matrix.istio_version }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-
-      - name: Check Unintended Changes
-        run: |
-          echo "::group::Check sw.version"
-          sudo apt install -y -q xmlstarlet
-          SW_VERSION=$(xmlstarlet sel -N pom=http://maven.apache.org/POM/4.0.0 -t -v "/pom:project/pom:properties/pom:sw.version" test/e2e/pom.xml)
-          if [[ "$(echo $(echo $SW_VERSION))" != "" ]]; then
-            echo "Please don't submit the change of sw.version in test/e2e/pom.xml"
-            exit 1
-          fi
-          echo "::endgroup::"
-
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-
-      - uses: actions/cache@v2
-        if: env.SKIP_CI != 'true'
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: ${{ runner.os }}-maven-
-
-      - name: Build Docker Image
-        if: env.SKIP_CI != 'true'
-        run: make docker
-
-      - name: Prepare environment
-        if: env.SKIP_CI != 'true'
-        run: bash ${SCRIPTS_DIR}/pre.sh
-
-      - name: Install Minikube
-        if: env.SKIP_CI != 'true'
-        run: bash ${SCRIPTS_DIR}/minikube.sh start
-
-      - name: Install Istio
-        if: env.SKIP_CI != 'true'
-        run: |
-          bash ${SCRIPTS_DIR}/istio.sh \
-            --set profile=demo \
-            --set meshConfig.defaultConfig.envoyMetricsService.address=skywalking-oap.istio-system:11800 \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[0]=.*membership_healthy.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[1]=.*upstream_cx_active.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[2]=.*upstream_cx_total.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[3]=.*upstream_rq_active.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[4]=.*upstream_rq_total.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[5]=.*upstream_rq_pending_active.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[6]=.*lb_healthy_panic.*' \
-            --set 'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[7]=.*upstream_cx_none_healthy.*' \
-            --set values.telemetry.v2.enabled=false # disable the metadata-exchange extension intentionally to make sure metrics service doesn't rely on it
-
-      - name: Install SkyWalking
-        if: env.SKIP_CI != 'true'
-        run: |
-          git clone https://github.com/apache/skywalking-kubernetes.git
-          cd skywalking-kubernetes
-          git reset --hard $SW_KUBERNETES_COMMIT_SHA
-          cd chart
-          mkdir -p skywalking/files/conf.d/oap/ && cp ../../test/e2e/e2e-test/src/test/resources/metadata-service-mapping.yaml skywalking/files/conf.d/oap/metadata-service-mapping.yaml
-          helm dep up skywalking
-          helm -n istio-system install skywalking skywalking \
-               --set fullnameOverride=skywalking \
-               --set elasticsearch.replicas=1 \
-               --set elasticsearch.minimumMasterNodes=1 \
-               --set elasticsearch.imageTag=7.5.1 \
-               --set oap.replicas=1 \
-               --set ui.image.repository=skywalking/ui \
-               --set ui.image.tag=$TAG \
-               --set oap.image.tag=$TAG \
-               --set oap.image.repository=skywalking/oap \
-               --set oap.storageType=elasticsearch7
-          kubectl -n istio-system get pods
-
-          sleep 3
-          kubectl -n istio-system wait --for=condition=available deployments/skywalking-oap --timeout=1200s
-          kubectl get pods -A -o wide --show-labels
-          kubectl get services -A -o wide
-
-      - name: Deploy demo services
-        if: env.SKIP_CI != 'true'
-        run: |
-          bash ${SCRIPTS_DIR}/demo.sh
-          kubectl apply -f https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/destination-rule-all.yaml
-          kubectl apply -f https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/virtual-service-all-v1.yaml
-
-      - name: Cluster Info
-        if: ${{ failure() }}
-        run: |
-          df -h
-          minikube logs
-          minikube status
-
-      - name: Set up Minikube tunnel
-        if: env.SKIP_CI != 'true'
-        run: |
-          mkdir /tmp/minikube-tunnel
-          minikube tunnel > /tmp/minikube-tunnel/a.log &
-          export POD_NAME=$(kubectl get pods -n istio-system -l "app=skywalking,release=skywalking,component=ui" -o jsonpath="{.items[0].metadata.name}")
-          echo $POD_NAME
-          kubectl -n istio-system port-forward $POD_NAME 8080:8080 > /tmp/minikube-tunnel/b.log &
-
-      - name: Run E2E test
-        if: env.SKIP_CI != 'true'
-        run: |
-          export GATEWAY_HOST=$(minikube ip)
-          export GATEWAY_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
-          export WEBAPP_HOST=127.0.0.1
-          export WEBAPP_PORT=8080
-
-          export SW_VERSION=$(./mvnw -q -DforceStdout -N org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version)
-
-          ./mvnw -q -DskipTests -N install
-          ./mvnw -q -f apm-application-toolkit -DskipTests -am install
-
-          ./mvnw -q --batch-mode -f test/e2e/pom.xml -am -DfailIfNoTests=false -Dsw.version=${SW_VERSION} verify -Dit.test=org.apache.skywalking.e2e.mesh.MetricsServiceE2E
-
-      - name: Logs
-        if: ${{ failure() }}
-        continue-on-error: true
-        run: |
-          kubectl -n istio-system logs --tail=10000 -l "app=skywalking,release=skywalking,component=ui"
-          kubectl -n istio-system logs --tail=10000 -l "app=skywalking,release=skywalking,component=oap"
-          cat /tmp/minikube-tunnel/*
-
-      - name: Clean up
-        if: env.SKIP_CI != 'true'
-        run: minikube delete
diff --git a/.github/workflows/e2e.jdk-versions.yaml b/.github/workflows/e2e.jdk-versions.yaml
deleted file mode 100644
index 2a9faa8..0000000
--- a/.github/workflows/e2e.jdk-versions.yaml
+++ /dev/null
@@ -1,66 +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: E2E
-
-on:
-  pull_request:
-  schedule:
-    - cron: '0 18 * * *'
-
-concurrency:
-  group: e2e-jdk-versions-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  JavaVersions:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Agent Java Versions
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        jdk: [8, 9, 10, 11, 12, 13, 14, 15, 16]
-    env:
-      SW_SIMPLE_CASE: jdk
-      SW_AGENT_JDK_VERSION: ${{ matrix.jdk }}
-      SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:alpine
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-          depth: 0
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Set Up Java
-        if: env.SKIP_CI != 'true'
-        uses: actions/setup-java@v1
-        with:
-          java-version: ${{ matrix.jdk }}
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.simple.SimpleE2E
-
-  Single:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    needs: [JavaVersions]
-    steps:
-      - name: Singles Bar
-        run: echo "Singles Bar - Miyuki Nakajima"
diff --git a/.github/workflows/e2e.js.yaml b/.github/workflows/e2e.js.yaml
deleted file mode 100644
index e364900..0000000
--- a/.github/workflows/e2e.js.yaml
+++ /dev/null
@@ -1,69 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-js-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  JavaScriptClient:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Java Script Client
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        storage: [ 'h2', 'mysql', 'es6', 'es7', 'influxdb' ]
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.browser.BrowserE2E
-  JavaScriptClientWithRealAgent:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Java Script Client With Real Agent
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.browser.BrowserWithClientJSE2E
diff --git a/.github/workflows/e2e.kafka.yaml b/.github/workflows/e2e.kafka.yaml
deleted file mode 100644
index fdbbd81..0000000
--- a/.github/workflows/e2e.kafka.yaml
+++ /dev/null
@@ -1,62 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-  SW_STORAGE: influxdb
-
-concurrency:
-  group: e2e-kafka-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  Kafka:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Kafka (${{ matrix.case.name }})
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        case:
-          - name: Base
-            class: org.apache.skywalking.e2e.kafka.KafkaE2E
-          - name: Profiling
-            class: org.apache.skywalking.e2e.kafka.KafkaProfileE2E
-          - name: Meter
-            class: org.apache.skywalking.e2e.kafka.KafkaMeterE2E
-          - name: Log
-            class: org.apache.skywalking.e2e.kafka.KafkaLogE2E
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: ${{ matrix.case.class }}
diff --git a/.github/workflows/e2e.log.yaml b/.github/workflows/e2e.log.yaml
deleted file mode 100644
index 46f4c95..0000000
--- a/.github/workflows/e2e.log.yaml
+++ /dev/null
@@ -1,71 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-log-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  Log:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Log
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        storage: ['h2', 'mysql', 'es6', 'es7', 'es7.14', 'influxdb']
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.log.LogE2E
-
-  LogFluentBit:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Log (FluentBit)
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.log.LogFluentBitE2E
diff --git a/.github/workflows/e2e.nodejs.yaml b/.github/workflows/e2e.nodejs.yaml
deleted file mode 100644
index 4084cc7..0000000
--- a/.github/workflows/e2e.nodejs.yaml
+++ /dev/null
@@ -1,50 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-nodejs-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  NodeJSAgent:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: NodeJSAgent
-    runs-on: ubuntu-latest
-    timeout-minutes: 30
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.NodeJSE2E
diff --git a/.github/workflows/e2e.php.yaml b/.github/workflows/e2e.php.yaml
deleted file mode 100644
index bf24610..0000000
--- a/.github/workflows/e2e.php.yaml
+++ /dev/null
@@ -1,47 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-concurrency:
-  group: e2e-php-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  PHPAgent:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: PHP
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.PHPE2E
diff --git a/.github/workflows/e2e.profiling.yaml b/.github/workflows/e2e.profiling.yaml
deleted file mode 100644
index bc7daf6..0000000
--- a/.github/workflows/e2e.profiling.yaml
+++ /dev/null
@@ -1,55 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-profiling-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  Profiling:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Profiling
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        storage: ['h2', 'mysql', 'es6', 'es7', 'influxdb']
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.profile.ProfileE2E
diff --git a/.github/workflows/e2e.python.yaml b/.github/workflows/e2e.python.yaml
deleted file mode 100644
index 152bc46..0000000
--- a/.github/workflows/e2e.python.yaml
+++ /dev/null
@@ -1,50 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-python-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  PythonAgent:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: PythonAgent
-    runs-on: ubuntu-latest
-    timeout-minutes: 30
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.PythonE2E
diff --git a/.github/workflows/e2e.so11y.yaml b/.github/workflows/e2e.so11y.yaml
deleted file mode 100644
index cb3b945..0000000
--- a/.github/workflows/e2e.so11y.yaml
+++ /dev/null
@@ -1,50 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-so11y-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  SelfObservability:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: SelfObservability
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.SO11yE2E
diff --git a/.github/workflows/e2e.storages.yaml b/.github/workflows/e2e.storages.yaml
deleted file mode 100644
index ea4ba9c..0000000
--- a/.github/workflows/e2e.storages.yaml
+++ /dev/null
@@ -1,61 +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: E2E
-
-on:
-  pull_request:
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-storages-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  StoragePlugins:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Storage
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        storage: ['mysql', 'es6', 'es7.0', 'es7.10', 'es7.14', 'opensearch', 'influxdb', 'tidb', 'postgresql']
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.storage.StorageE2E
-
-  Storage:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    needs: [StoragePlugins]
-    steps:
-      - name: To pass or not pass
-        run: echo "Just to make the GitHub merge button green"
diff --git a/.github/workflows/e2e.ttl.yaml b/.github/workflows/e2e.ttl.yaml
deleted file mode 100644
index 88c2e22..0000000
--- a/.github/workflows/e2e.ttl.yaml
+++ /dev/null
@@ -1,55 +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: E2E
-
-on:
-  pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-ttl-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  TTL:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Storage TTL
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        storage: ['es6', 'es7', 'influxdb', 'tidb', 'postgresql']
-    env:
-      SW_STORAGE: ${{ matrix.storage }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.ttl.StorageTTLE2E
diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml
deleted file mode 100644
index d9766c2..0000000
--- a/.github/workflows/e2e.yaml
+++ /dev/null
@@ -1,84 +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: E2E
-
-on:
-  pull_request:
-    # Do not run this workflow when and only when `*.md` files are modified
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-concurrency:
-  group: e2e-features-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  FeatureGroup01:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: Feature
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        case: [auth, ssl]
-    env:
-      SW_SIMPLE_CASE: ${{ matrix.case }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: org.apache.skywalking.e2e.simple.SimpleE2E
-
-  FeatureGroup02:
-    if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
-    name: ${{ matrix.case.name }}
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        case:
-          - name: Lua Nginx
-            class: org.apache.skywalking.e2e.LuaE2E
-          - name: Gateway
-            class: org.apache.skywalking.e2e.GatewayE2E
-          - name: Meter
-            class: org.apache.skywalking.e2e.meter.MeterE2E
-          - name: Zabbix
-            class: org.apache.skywalking.e2e.zabbix.ZabbixE2E
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - name: Run E2E Test
-        if: env.SKIP_CI != 'true'
-        uses: ./.github/actions/e2e-test
-        with:
-          test_class: ${{ matrix.case.class }}
diff --git a/.github/workflows/plugins-jdk14-test.0.yaml b/.github/workflows/plugins-jdk14-test.0.yaml
index fba4eab..cc24e15 100644
--- a/.github/workflows/plugins-jdk14-test.0.yaml
+++ b/.github/workflows/plugins-jdk14-test.0.yaml
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: PluginsJDK14Test
+name: Test
 
 on:
   pull_request:
diff --git a/.github/workflows/plugins-test.0.yaml b/.github/workflows/plugins-test.0.yaml
index 1d6f367..2f38b9e 100644
--- a/.github/workflows/plugins-test.0.yaml
+++ b/.github/workflows/plugins-test.0.yaml
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: PluginsTest
+name: Test
 
 on:
   pull_request:
diff --git a/.github/workflows/plugins-test.1.yaml b/.github/workflows/plugins-test.1.yaml
index 7fa9f51..09bb79d 100644
--- a/.github/workflows/plugins-test.1.yaml
+++ b/.github/workflows/plugins-test.1.yaml
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: PluginsTest
+name: Test
 
 on:
   pull_request:
diff --git a/.github/workflows/plugins-test.2.yaml b/.github/workflows/plugins-test.2.yaml
index 39982aa..0e861d0 100644
--- a/.github/workflows/plugins-test.2.yaml
+++ b/.github/workflows/plugins-test.2.yaml
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: PluginsTest
+name: Test
 
 on:
   pull_request:
diff --git a/.github/workflows/plugins-test.3.yaml b/.github/workflows/plugins-test.3.yaml
index f25a85e..1097c46 100644
--- a/.github/workflows/plugins-test.3.yaml
+++ b/.github/workflows/plugins-test.3.yaml
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: PluginsTest
+name: Test
 
 on:
   pull_request:
diff --git a/.github/workflows/publish-docker.yaml b/.github/workflows/publish-docker.yaml
index 28fd290..b5dac91 100644
--- a/.github/workflows/publish-docker.yaml
+++ b/.github/workflows/publish-docker.yaml
@@ -23,23 +23,19 @@ on:
 
 env:
   SKIP_TEST: true
-  HUB: ghcr.io/apache/skywalking
+  NAME: skywalking-java
+  HUB: ghcr.io/apache/skywalking-java
 
 jobs:
   build:
-    if: github.repository == 'apache/skywalking'
+    if: github.repository == 'apache/skywalking-java'
     runs-on: ubuntu-latest
     permissions:
       contents: read
       packages: write
-    timeout-minutes: 90
-    strategy:
-      fail-fast: true
-      matrix:
-        es: [es6, es7]
+    timeout-minutes: 60
     env:
-      ES_VERSION: ${{ matrix.es }}
-      TAG: ${{ github.sha }}-${{ matrix.es }}
+      TAG: ${{ github.sha }}
     steps:
       - uses: actions/checkout@v2
         with:
@@ -48,9 +44,8 @@ jobs:
         uses: actions/cache@v2
         with:
           path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: |
-            ${{ runner.os }}-maven-
+          key: ${{ runner.os }}-maven-publish-docker
+          restore-keys: ${{ runner.os }}-maven-
       - name: Log in to the Container registry
         uses: docker/login-action@v1.10.0
         with:
@@ -59,5 +54,6 @@ jobs:
           password: ${{ secrets.GITHUB_TOKEN }}
       - name: Build docker image
         run: |
-          make docker || make docker
           make docker.push || make docker.push
+          docker tag $HUB/$NAME:$TAG $HUB/$NAME:latest
+          docker push $HUB/$NAME:latest
diff --git a/.gitignore b/.gitignore
index c442cb7..e127805 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,6 @@ packages/
 **/dist/
 /docker/snapshot/*.gz
 .mvn/wrapper/*.jar
-OALLexer.tokens
 .factorypath
 .vscode
 .checkstyle
@@ -22,5 +21,4 @@ OALLexer.tokens
 /test/plugin/workspace
 /test/jacoco/classes
 /test/jacoco/*.exec
-oap-server/oal-grammar/**/gen/
 test/jacoco
diff --git a/.muse/config.toml b/.muse/config.toml
deleted file mode 100644
index fd609b2..0000000
--- a/.muse/config.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-jdk11 = true
-setup = ".muse/setup.sh"
diff --git a/.muse/setup.sh b/.muse/setup.sh
deleted file mode 100755
index 6bc9e75..0000000
--- a/.muse/setup.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env bash
-git submodule update --init --recursive
diff --git a/docker/agent/Dockerfile.agent b/Dockerfile
similarity index 85%
rename from docker/agent/Dockerfile.agent
rename to Dockerfile
index a3049c3..08f41bf 100644
--- a/docker/agent/Dockerfile.agent
+++ b/Dockerfile
@@ -16,14 +16,6 @@
 
 ARG BASE_IMAGE='adoptopenjdk/openjdk8:alpine'
 
-FROM alpine as build
-
-ENV DIST_NAME=apache-skywalking-apm-bin
-
-ADD "$DIST_NAME.tar.gz" /
-
-RUN mv /$DIST_NAME /skywalking
-
 FROM alpine AS cli
 
 WORKDIR /skywalking/bin
@@ -42,5 +34,6 @@ ENV JAVA_TOOL_OPTIONS=-javaagent:/skywalking/agent/skywalking-agent.jar
 
 WORKDIR /skywalking
 
-COPY --from=build /skywalking/agent /skywalking/agent
-COPY --from=cli /skywalking/bin/swctl /skywalking/bin
+ADD skywalking-agent /skywalking/agent
+
+COPY --from=cli /skywalking/bin/swctl /usr/bin/swctl
diff --git a/Makefile b/Makefile
index acbab49..7b533f5 100644
--- a/Makefile
+++ b/Makefile
@@ -16,99 +16,26 @@
 
 SHELL := /bin/bash -o pipefail
 
-export SW_ROOT := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+HUB ?= skywalking
+NAME ?= skywalking-java
+TAG ?= latest
 
-export SW_OUT:=${SW_ROOT}/dist
+SKIP_TEST ?= false
 
-SKIP_TEST?=false
+.PHONY: build docker
 
 init:
-	cd $(SW_ROOT) && git submodule update --init --recursive
+	git submodule update --init --recursive
 
-.PHONY: build.all build.agent build.backend build.ui build.docker
-
-build.all:
-	cd $(SW_ROOT) && ./mvnw --batch-mode clean package -Dmaven.test.skip=$(SKIP_TEST)
-
-build.agent:
-	cd $(SW_ROOT) && ./mvnw --batch-mode clean package -Dmaven.test.skip=$(SKIP_TEST) -Pagent,dist
-
-build.backend:
-	cd $(SW_ROOT) && ./mvnw --batch-mode clean package -Dmaven.test.skip=$(SKIP_TEST) -Pbackend,dist
-
-build.ui:
-	cd $(SW_ROOT) && ./mvnw --batch-mode clean package -Dmaven.test.skip=$(SKIP_TEST) -Pui,dist
-
-DOCKER_BUILD_TOP:=${SW_OUT}/docker_build
-
-HUB?=skywalking
-
-TAG?=latest
-
-ES_VERSION?=es6
-
-.SECONDEXPANSION: #allow $@ to be used in dependency list
-
-.PHONY: docker docker.all docker.oap
-
-docker: init build.all docker.all
-
-DOCKER_TARGETS:=docker.oap docker.ui docker.agent
-
-docker.all: $(DOCKER_TARGETS)
-
-ifeq ($(ES_VERSION),es7)
-  DIST_NAME := apache-skywalking-apm-bin-es7
-else
-  DIST_NAME := apache-skywalking-apm-bin
-endif
+build:
+	./mvnw --batch-mode clean package -Dmaven.test.skip=$(SKIP_TEST)
 
 ifneq ($(SW_OAP_BASE_IMAGE),)
   BUILD_ARGS := $(BUILD_ARGS) --build-arg BASE_IMAGE=$(SW_OAP_BASE_IMAGE)
 endif
 
-BUILD_ARGS := $(BUILD_ARGS) --build-arg DIST_NAME=$(DIST_NAME)
-
-docker.oap: $(SW_OUT)/$(DIST_NAME).tar.gz
-docker.oap: $(SW_ROOT)/docker/oap/Dockerfile.oap
-docker.oap: $(SW_ROOT)/docker/oap/docker-entrypoint.sh
-docker.oap: $(SW_ROOT)/docker/oap/log4j2.xml
-		$(DOCKER_RULE)
-
-docker.ui: $(SW_OUT)/apache-skywalking-apm-bin.tar.gz
-docker.ui: $(SW_ROOT)/docker/ui/Dockerfile.ui
-docker.ui: $(SW_ROOT)/docker/ui/docker-entrypoint.sh
-docker.ui: $(SW_ROOT)/docker/ui/logback.xml
-		$(DOCKER_RULE)
-
-docker.agent: $(SW_OUT)/apache-skywalking-apm-bin.tar.gz
-docker.agent: $(SW_ROOT)/docker/agent/Dockerfile.agent
-		$(DOCKER_RULE)
-
-
-# $@ is the name of the target
-# $^ the name of the dependencies for the target
-# Rule Steps #
-##############
-# 1. Make a directory $(DOCKER_BUILD_TOP)/%@
-# 2. This rule uses cp to copy all dependency filenames into into $(DOCKER_BUILD_TOP/$@
-# 3. This rule then changes directories to $(DOCKER_BUID_TOP)/$@
-# 4. This rule runs $(BUILD_PRE) prior to any docker build and only if specified as a dependency variable
-# 5. This rule finally runs docker build passing $(BUILD_ARGS) to docker if they are specified as a dependency variable
-
-DOCKER_RULE=time (mkdir -p $(DOCKER_BUILD_TOP)/$@ && cp -r $^ $(DOCKER_BUILD_TOP)/$@ && cd $(DOCKER_BUILD_TOP)/$@ && $(BUILD_PRE) docker build --no-cache $(BUILD_ARGS) -t $(HUB)/$(subst docker.,,$@):$(TAG) -f Dockerfile$(suffix $@) .)
-
-# for each docker.XXX target create a push.docker.XXX target that pushes
-# the local docker image to another hub
-# a possible optimization is to use tag.$(TGT) as a dependency to do the tag for us
-$(foreach TGT,$(DOCKER_TARGETS),$(eval push.$(TGT): | $(TGT) ; \
-	time (docker push $(HUB)/$(subst docker.,,$(TGT)):$(TAG))))
-
-# create a DOCKER_PUSH_TARGETS that's each of DOCKER_TARGETS with a push. prefix
-DOCKER_PUSH_TARGETS:=
-$(foreach TGT,$(DOCKER_TARGETS),$(eval DOCKER_PUSH_TARGETS+=push.$(TGT)))
-
-# Will build and push docker images.
-docker.push: $(DOCKER_PUSH_TARGETS)
-
+docker: init build
+    docker build --no-cache $(BUILD_ARGS) -t $(HUB)/$(NAME):$(TAG)
 
+docker.push: docker
+    docker push $(HUB)/$(NAME):$(TAG)
diff --git a/docker/.env b/docker/.env
deleted file mode 100644
index 4c19017..0000000
--- a/docker/.env
+++ /dev/null
@@ -1,2 +0,0 @@
-TAG=es6
-ES_TAG=6.8.1
\ No newline at end of file
diff --git a/docker/README.md b/docker/README.md
deleted file mode 100644
index 00699ba..0000000
--- a/docker/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-This folder contains Docker files for SkyWalking developers/committers to build images manually. If you want to start a SkyWalking backend server with docker-compose for your integration, please visit https://github.com/apache/skywalking-docker repository. 
-
-
-## Quickstart
-You can use `Makefile` located at the root folder to build a docker image with the current codebase.
-
-```
-make docker
-```
-
-It doesn't contain the process of building a docker image but also includes all the required steps, for instance, init workspace, build artifact from scratch. It builds two images, OAP, and UI.
-
-```
-docker image ls | grep skywalking
-skywalking/ui                                   latest              a14db4e1d70d        6 minutes ago       800MB
-skywalking/oap                                  latest              2a6084450b44        6 minutes ago       862MB
-```
-
-
-## Building variables
-
-There're some environment variables to control image building.
-
-### HUB
-
-The hub of docker image. The default value is `skywalking`.
-
-### TAG
-
-The tag of docker image. The default value is `latest`.
-
-### ES_VERSION
-
-The elasticsearch version this image supports. The default value is `es6`, available values are `es6` and `es7`.
-
-
-For example, if we want to build images with a hub `foo.io` and a tag `bar`, and it supports elasticsearch 7 at the same time.
-We can issue the following commands.
-
-```
-export HUB=foo.io && export TAG=bar && export ES_VERSION=es7 && make docker
-```
-
-Let's check out the result:
-```
-docker image ls | grep foo.io
-foo.io/ui                                       bar                 a14db4e1d70d        9 minutes ago       800MB
-foo.io/oap                                      bar                 2a6084450b44        9 minutes ago       862MB
-```
-
-From the output, we can find out the building tool adopts the files stored in `oap-es7`.
-
-## Running containers with docker-compose
-
-We can start up backend cluster by docker-compose
-```
-cd docker
-docker compose up
-```
-`docker/.env` file contains the default `TAG` and elasticsearch tag(`ES_TAG`).
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
deleted file mode 100644
index a41cab8..0000000
--- a/docker/docker-compose.yml
+++ /dev/null
@@ -1,64 +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.
-
-version: '3.5'
-services:
-  elasticsearch:
-    image: docker.elastic.co/elasticsearch/elasticsearch:${ES_TAG}
-    container_name: elasticsearch
-    restart: always
-    ports:
-      - 9200:9200
-    environment:
-      discovery.type: single-node
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-  oap:
-    image: skywalking/oap:${TAG}
-    container_name: oap
-    depends_on:
-      - elasticsearch
-    links:
-      - elasticsearch
-    restart: always
-    ports:
-      - 11800:11800
-      - 12800:12800
-    environment:
-      SW_STORAGE: elasticsearch
-      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
-      SW_HEALTH_CHECKER: default
-      SW_TELEMETRY: prometheus
-    healthcheck:
-      test: ["CMD", "./bin/swctl", "ch"]
-      interval: 30s
-      timeout: 10s
-      retries: 3
-      start_period: 40s
-  ui:
-    image: skywalking/ui:${TAG}
-    container_name: ui
-    depends_on:
-      - oap
-    links:
-      - oap
-    restart: always
-    ports:
-      - 8080:8080
-    environment:
-      SW_OAP_ADDRESS: http://oap:12800
diff --git a/docker/oap/Dockerfile.oap b/docker/oap/Dockerfile.oap
deleted file mode 100644
index dd44a66..0000000
--- a/docker/oap/Dockerfile.oap
+++ /dev/null
@@ -1,66 +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.
-
-ARG BASE_IMAGE='adoptopenjdk/openjdk11:alpine'
-
-FROM golang:1.14 AS cli
-
-ARG COMMIT_HASH=9f267876493943716434fdaa30047a14c0b5b2d9
-ARG CLI_CODE=${COMMIT_HASH}.tar.gz
-ARG CLI_CODE_URL=https://github.com/apache/skywalking-cli/archive/${CLI_CODE}
-
-ENV CGO_ENABLED=0
-ENV GO111MODULE=on
-
-WORKDIR /cli
-
-ADD ${CLI_CODE_URL} .
-RUN tar -xf ${CLI_CODE} --strip 1
-RUN rm ${CLI_CODE}
-
-RUN mkdir -p /skywalking/bin/
-RUN make linux && mv bin/swctl-latest-linux-amd64 /skywalking/bin/swctl
-
-FROM $BASE_IMAGE
-
-ENV JAVA_OPTS=" -Xms256M " \
-    SW_CLUSTER="standalone" \
-    SW_STORAGE="h2"
-
-ARG DIST_NAME
-
-COPY "$DIST_NAME.tar.gz" /
-
-RUN set -ex; \
-    tar -xzf "$DIST_NAME.tar.gz"; \
-    rm -rf "$DIST_NAME.tar.gz"; \
-    rm -rf "$DIST_NAME/config/log4j2.xml"; \
-    rm -rf "$DIST_NAME/bin"; rm -rf "$DIST_NAME/webapp"; rm -rf "$DIST_NAME/agent"; \
-    mkdir "$DIST_NAME/bin"; \
-    mv "$DIST_NAME" skywalking;
-
-WORKDIR skywalking
-
-COPY --from=cli /skywalking/bin/swctl ./bin
-
-COPY log4j2.xml config/
-COPY docker-entrypoint.sh .
-RUN mkdir ext-config; \
-    mkdir ext-libs;
-
-EXPOSE 12800 11800 1234
-
-ENTRYPOINT ["sh", "docker-entrypoint.sh"]
diff --git a/docker/oap/docker-entrypoint.sh b/docker/oap/docker-entrypoint.sh
deleted file mode 100755
index de60e3d..0000000
--- a/docker/oap/docker-entrypoint.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-# 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.
-
-set -e
-
-echo "[Entrypoint] Apache SkyWalking Docker Image"
-
-EXT_LIB_DIR=/skywalking/ext-libs
-EXT_CONFIG_DIR=/skywalking/ext-config
-
-# Override configuration files
-if [ "$(ls -A $EXT_CONFIG_DIR)" ]; then
-  cp -vfRL ${EXT_CONFIG_DIR}/* config/
-fi
-
-CLASSPATH="config:$CLASSPATH"
-for i in oap-libs/*.jar
-do
-    CLASSPATH="$i:$CLASSPATH"
-done
-for i in "${EXT_LIB_DIR}"/*.jar
-do
-    CLASSPATH="$i:$CLASSPATH"
-done
-
-set -ex
-
-exec java ${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@"
diff --git a/docker/oap/log4j2.xml b/docker/oap/log4j2.xml
deleted file mode 100644
index 06242e5..0000000
--- a/docker/oap/log4j2.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-
-<Configuration status="INFO">
-    <Appenders>
-        <Console name="Console" target="SYSTEM_OUT">
-            <PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
-        </Console>
-    </Appenders>
-    <Loggers>
-        <logger name="org.eclipse.jetty" level="INFO"/>
-        <logger name="org.apache.zookeeper" level="INFO"/>
-        <logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
-        <logger name="io.grpc.netty" level="INFO"/>
-        <logger name="org.apache.skywalking.oap.meter.analyzer" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.fetcher.prometheus" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.receiver.envoy.als" level="DEBUG"/>
-        <Root level="INFO">
-            <AppenderRef ref="Console"/>
-        </Root>
-    </Loggers>
-</Configuration>
diff --git a/docker/ui/Dockerfile.ui b/docker/ui/Dockerfile.ui
deleted file mode 100644
index d2f9f54..0000000
--- a/docker/ui/Dockerfile.ui
+++ /dev/null
@@ -1,40 +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.
-
-FROM adoptopenjdk/openjdk11:alpine
-
-ENV DIST_NAME=apache-skywalking-apm-bin \
-    JAVA_OPTS=" -Xms256M " \
-    SW_OAP_ADDRESS="http://127.0.0.1:12800"
-
-COPY "$DIST_NAME.tar.gz" /
-
-RUN set -ex; \
-    apk add bash; \
-    tar -xzf "$DIST_NAME.tar.gz"; \
-    rm -rf "$DIST_NAME.tar.gz"; \
-    rm -rf "$DIST_NAME/config"; \
-    rm -rf "$DIST_NAME/bin"; rm -rf "$DIST_NAME/oap-libs"; rm -rf "$DIST_NAME/agent"; \
-    mv "$DIST_NAME" skywalking;
-
-WORKDIR skywalking
-
-COPY docker-entrypoint.sh .
-COPY logback.xml webapp/
-
-EXPOSE 8080
-
-ENTRYPOINT ["bash", "docker-entrypoint.sh"]
\ No newline at end of file
diff --git a/docker/ui/logback.xml b/docker/ui/logback.xml
deleted file mode 100644
index c9490a8..0000000
--- a/docker/ui/logback.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-<configuration>
-    <include resource="org/springframework/boot/logging/logback/base.xml"/>
-</configuration>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4742aa2..af8e4f0 100755
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,8 @@
   ~
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.skywalking</groupId>
@@ -28,12 +29,14 @@
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
         <version>21</version>
-        <relativePath />
+        <relativePath/>
     </parent>
 
     <modules>
         <module>apm-commons</module>
         <module>apm-protocol</module>
+        <module>apm-sniffer</module>
+        <module>apm-application-toolkit</module>
     </modules>
     <packaging>pom</packaging>
 
@@ -74,79 +77,6 @@
         </mailingList>
     </mailingLists>
 
-    <profiles>
-        <profile>
-            <id>agent</id>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
-            <modules>
-                <module>apm-sniffer</module>
-                <module>apm-application-toolkit</module>
-            </modules>
-        </profile>
-        <profile>
-            <id>all</id>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <modules>
-                <module>apm-sniffer</module>
-                <module>apm-application-toolkit</module>
-            </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>exec-maven-plugin</artifactId>
-                        <version>${exec-maven-plugin.version}</version>
-                        <executions>
-                            <execution>
-                                <id>git submodule update</id>
-                                <phase>initialize</phase>
-                                <inherited>false</inherited>
-                                <configuration>
-                                    <executable>git</executable>
-                                    <arguments>
-                                        <argument>submodule</argument>
-                                        <argument>update</argument>
-                                        <argument>--init</argument>
-                                        <argument>--recursive</argument>
-                                    </arguments>
-                                </configuration>
-                                <goals>
-                                    <goal>exec</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>CI-with-IT</id>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                    <goal>verify</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <compiler.version>1.8</compiler.version>
@@ -190,7 +120,7 @@
         <versions-maven-plugin.version>2.5</versions-maven-plugin.version>
         <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
         <maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
-        <jmh.version>1.21</jmh.version>
+        <jmh.version>1.31</jmh.version>
         <gmaven-plugin.version>1.5</gmaven-plugin.version>
         <cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
         <checkstyle.fails.on.error>true</checkstyle.fails.on.error>
@@ -499,7 +429,7 @@
                 <artifactId>cobertura-maven-plugin</artifactId>
                 <version>${cobertura-maven-plugin.version}</version>
                 <configuration>
-                    <check />
+                    <check/>
                     <aggregate>true</aggregate>
                     <encoding>${project.build.sourceEncoding}</encoding>
                     <quiet>true</quiet>
diff --git a/tools/coverage/report.sh b/tools/coverage/report.sh
deleted file mode 100755
index 5140fbd..0000000
--- a/tools/coverage/report.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env bash
-
-# ----------------------------------------------------------------------------
-# 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.
-# ----------------------------------------------------------------------------
-
-set -ex
-
-JACOCO_HOME=${JACOCO_HOME:-test/jacoco}
-
-ls -alh "${JACOCO_HOME}"
-
-for exec_data in "${JACOCO_HOME}"/*.exec; do
-  exec_data=${exec_data/*\//}
-  exec_data=${exec_data/.exec/}
-
-  sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/org/apache/skywalking/oap/server/core/query/entity || true
-  sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/org/apache/skywalking/testcase || true
-  sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/org/apache/skywalking/e2e || true
-  sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/test/apache/skywalking/e2e || true
-
-  java -jar "${JACOCO_HOME}"/jacococli.jar report \
-    --classfiles "${JACOCO_HOME}"/classes/"$exec_data" \
-    --xml=/tmp/report-"$exec_data".xml \
-    --html=/tmp/report-html-"$exec_data" \
-    "${JACOCO_HOME}"/"$exec_data".exec
-done
-
-# Download codecov bash uploader and verify the sha sums before using it.
-curl -s https://codecov.io/bash > codecov
-VERSION=$(grep -o 'VERSION=\"[0-9\.]*\"' codecov | cut -d'"' -f2)
-for i in 1 256 512
-do
-  shasum -a $i -c --ignore-missing <(curl -s "https://raw.githubusercontent.com/codecov/codecov-bash/${VERSION}/SHA${i}SUM") ||
-  shasum -a $i -c <(curl -s "https://raw.githubusercontent.com/codecov/codecov-bash/${VERSION}/SHA${i}SUM") || exit 0
-done
-
-bash codecov -X fix -f /tmp/report-*.xml || true