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

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


The following commit(s) were added to refs/heads/master by this push:
     new bf03d9f  Improve CI with the GHA new feature (#8691)
bf03d9f is described below

commit bf03d9f67a5b821ca4e713f306c5badd510675b2
Author: kezhenxu94 <[email protected]>
AuthorDate: Thu Mar 17 10:06:53 2022 +0800

    Improve CI with the GHA new feature (#8691)
---
 .asf.yaml                                          |   9 +-
 .github/actions/infra-e2e-test/action.yml          |  74 ---
 .github/actions/skip/action.yml                    |  87 ---
 .github/workflows/ci-it.yaml                       | 132 -----
 .github/workflows/e2e.alarm.yaml                   |  55 --
 .github/workflows/e2e.cluster.yaml                 |  57 --
 .github/workflows/e2e.event.yaml                   |  54 --
 .github/workflows/e2e.istio.yaml                   |  76 ---
 .github/workflows/e2e.jdk-versions.yaml            |  61 --
 .github/workflows/e2e.js.yaml                      |  47 --
 .github/workflows/e2e.kafka.yaml                   |  58 --
 .github/workflows/e2e.log.yaml                     |  85 ---
 .github/workflows/e2e.nodejs.yaml                  |  47 --
 .github/workflows/e2e.php.yaml                     |  47 --
 .github/workflows/e2e.profiling.yaml               |  55 --
 .github/workflows/e2e.python.yaml                  |  47 --
 .github/workflows/e2e.satellite.yaml               |  47 --
 .github/workflows/e2e.so11y.yaml                   |  47 --
 .github/workflows/e2e.storages.yaml                |  86 ---
 .github/workflows/e2e.ttl.yaml                     |  63 --
 .github/workflows/e2e.yaml                         |  67 ---
 .../{e2e.go.yaml => skywalking-fake.yaml}          |  39 +-
 .github/workflows/skywalking.yaml                  | 640 +++++++++++++++++++++
 CHANGES.md                                         |   2 +
 docs/en/guides/README.md                           |  32 +-
 .../library/elasticsearch/ITElasticSearchTest.java |   1 +
 oap-server/server-starter/pom.xml                  |   2 +-
 .../tool-profile-snapshot-exporter/pom.xml         |   2 +-
 pom.xml                                            |  46 +-
 test/e2e-v2/cases/istio/als/e2e.yaml               |   8 +-
 test/e2e-v2/cases/istio/metrics/e2e.yaml           |   8 +-
 test/e2e-v2/java-test-service/pom.xml              |  17 -
 32 files changed, 711 insertions(+), 1387 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index ff5c76e..0d60a61 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -1,4 +1,4 @@
-  
+
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -41,14 +41,11 @@ github:
       required_status_checks:
         strict: true
         contexts:
-          - CI
-          - Single
-          - Storage
-          - Cluster
+          - Required
       required_pull_request_reviews:
         dismiss_stale_reviews: true
         required_approving_review_count: 1
-    # Protect these branches for the website    
+    # Protect these branches for the website
     website-docs/8.2.0:
       whatever: Just a placehold to make it take effects
     website-docs/8.3.0:
diff --git a/.github/actions/infra-e2e-test/action.yml 
b/.github/actions/infra-e2e-test/action.yml
deleted file mode 100644
index 68f6833..0000000
--- a/.github/actions/infra-e2e-test/action.yml
+++ /dev/null
@@ -1,74 +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: 'Run Infra E2E Test'
-description: 'Common steps when running an E2E Test'
-inputs:
-  config-file:
-    description: 'The e2e test config file path'
-    required: true
-runs:
-  using: "composite"
-  steps:
-    - name: Set Skip Env Var
-      uses: ./.github/actions/skip
-    - if: env.SKIP_CI != '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-
-    - if: env.SKIP_CI != 'true'
-      name: Check License
-      uses: apache/skywalking-eyes@a63f4afcc287dfb3727ecc45a4afc55a5e69c15f
-    - if: env.SKIP_CI != 'true'
-      name: Build Docker Image
-      shell: bash
-      env:
-        SKIP_TEST: "true"
-      run: |
-        echo "::group::Build Docker Image"
-        # Retry one more time due to frequent "maven connection reset"
-        make docker || make docker
-        echo "::endgroup::"
-    - if: env.SKIP_CI != 'true'
-      name: Build Java Test Services
-      shell: bash
-      run: |
-        echo "::group::build java test services"
-        # Retry one more time due to frequent "maven connection reset"
-        ./mvnw --batch-mode -f test/e2e-v2/java-test-service/pom.xml clean 
package
-        echo "::endgroup::"
-    - if: env.SKIP_CI != 'true'
-      name: Setup go
-      uses: actions/setup-go@v2
-      with:
-        go-version: '1.16'
-    - if: env.SKIP_CI != 'true'
-      name: Run E2E Test
-      uses: apache/skywalking-infra-e2e@main
-      with:
-        e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/${{ inputs.config-file }}
-    - uses: actions/upload-artifact@v2
-      if: ${{ failure() }}
-      name: Upload Logs
-      with:
-        name: logs
-        path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
diff --git a/.github/actions/skip/action.yml b/.github/actions/skip/action.yml
deleted file mode 100644
index 60c30ff..0000000
--- a/.github/actions/skip/action.yml
+++ /dev/null
@@ -1,87 +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: "Set Skip Env Var"
-description: "Action to set the SKIP_CI environment variable indicating that 
we should skip CI jobs"
-inputs:
-  paths:
-    description: >-
-      Set the SKIP_CI environment variable when and only when all the changed 
files located in one of the path,
-      the paths is shell-style pattern.
-    required: false
-    default: >-
-      "*.md"
-      "*.txt"
-      "skywalking-ui"
-      ".asf.yaml"
-      ".dlc.yaml"
-      ".licenserc.yaml"
-      "docs/menu.yml"
-      ".github/actions/skip/action.yml"
-      ".github/workflows/codeql.yaml"
-      "dist-material/release-docs"
-      "test/plugin/*"
-      "*/component-libraries.yml"
-
-runs:
-  using: "composite"
-  steps:
-    - name: Check Changed Files And Set Env Var
-      shell: bash
-      run: |
-        if [[ "${{ github.event_name }}" != "pull_request" ]]; then
-          exit 0
-        fi
-
-        BASE_SHA=$(jq -r '.pull_request.base.sha' $GITHUB_EVENT_PATH)
-        echo "Base sha is $BASE_SHA, head sha is $GITHUB_SHA"
-
-        git fetch --no-tags --progress --recurse-submodules --depth=1 origin 
${BASE_SHA}:origin/${BASE_SHA}
-        BASE_SHA=origin/${BASE_SHA}
-        echo "Base sha is $BASE_SHA, head sha is $GITHUB_SHA"
-
-        if ! files=$(git --no-pager diff --name-only ${GITHUB_SHA} 
${BASE_SHA}); then
-          exit 1
-        fi
-
-        echo "Ignore pattern:"
-        for pattern in $(echo '${{ inputs.paths }}'); do
-          echo $pattern
-        done
-
-        echo "Changed files:"
-        for file in ${files}; do
-          echo $file
-        done
-
-        echo "SKIP_CI=true" >> $GITHUB_ENV
-        for file in ${files}; do
-          matched=0
-          for pattern in $(echo '${{ inputs.paths }}'); do
-            pattern=$(echo "$pattern" | sed 's/"//g')
-            if eval "[[ '$file' == $pattern ]]"; then
-              matched=1
-              break
-            fi
-          done
-          if [[ "$matched" == "0" ]]; then
-            echo "$file doesn't match pattern $(echo '${{ inputs.paths }}'), 
stop checking"
-            echo "SKIP_CI=false" >> $GITHUB_ENV
-            break
-          fi
-        done
diff --git a/.github/workflows/ci-it.yaml b/.github/workflows/ci-it.yaml
deleted file mode 100644
index d2f6db7..0000000
--- a/.github/workflows/ci-it.yaml
+++ /dev/null
@@ -1,132 +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: CI AND IT
-
-on:
-  pull_request:
-  schedule:
-    - cron: '0 18 * * *'  # TimeZone: UTC 0
-
-concurrency:
-  group: ci-it-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-env:
-  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false 
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-
-jobs:
-  check-license-header:
-    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
-    name: Check License Header
-    runs-on: ubuntu-latest
-    timeout-minutes: 10
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Check License Header
-        uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
-  ci-platform:
-    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
-    name: Build and Test / Java ${{ matrix.java-version }} / ${{ matrix.os }}
-    needs: [ check-license-header ]
-    runs-on: ${{ matrix.os }}-latest
-    timeout-minutes: 90
-    strategy:
-      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: Cache local Maven repository
-        if: env.SKIP_CI != 'true'
-        uses: actions/cache@v2
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-ci-${{ hashFiles('**/pom.xml') }}
-          restore-keys: ${{ runner.os }}-maven-
-      - uses: actions/setup-java@v2
-        if: env.SKIP_CI != 'true'
-        with:
-          java-version: ${{ matrix.java-version }}
-          distribution: adopt
-      - name: Build and Test
-        if: env.SKIP_CI != 'true' && matrix.os == 'ubuntu'
-        run: |
-          ./mvnw -q --batch-mode -P"backend,ui,dist,CI-with-IT" clean verify 
install javadoc:javadoc
-      - name: Build and Test
-        if: env.SKIP_CI != 'true' && matrix.os != 'ubuntu'
-        run: ./mvnw -q --batch-mode -P"backend,ui,dist" clean verify install
-      - uses: actions/upload-artifact@v2
-        if: env.SKIP_CI != 'true' && matrix.os == 'ubuntu' && 
matrix.java-version == '8'
-        name: Upload OAP Server Binary
-        with:
-          name: dist
-          path: dist
-
-  check-dependency-license:
-    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
-    needs: [ ci-platform ]
-    runs-on: ubuntu-latest
-    timeout-minutes: 10
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Skip Env Var
-        uses: ./.github/actions/skip
-      - uses: actions/download-artifact@v2
-        if: env.SKIP_CI != 'true'
-        with:
-          name: dist
-          path: dist
-      - name: Cache local Maven repository
-        if: env.SKIP_CI != 'true'
-        uses: actions/cache@v2
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-ci-${{ hashFiles('**/pom.xml') }}
-          restore-keys: ${{ runner.os }}-maven-
-      - name: Check Dependencies Licenses
-        if: env.SKIP_CI != 'true'
-        run: tools/dependencies/check-LICENSE.sh
-
-  ci:
-    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
-    name: CI
-    needs: [ check-dependency-license ]
-    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: Merge Requirement
-        if: env.SKIP_CI != 'true'
-        run: echo 'Merge Requirement'
diff --git a/.github/workflows/e2e.alarm.yaml b/.github/workflows/e2e.alarm.yaml
deleted file mode 100644
index 4b8ce66..0000000
--- a/.github/workflows/e2e.alarm.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-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:
-        config-file:
-          - alarm/h2/e2e.yaml
-          - alarm/es/e2e.yaml
-          - alarm/mysql/e2e.yaml
-          - alarm/influxdb/e2e.yaml
-          - alarm/postgres/e2e.yaml
-          - alarm/iotdb/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: ${{ matrix.config-file }}
diff --git a/.github/workflows/e2e.cluster.yaml 
b/.github/workflows/e2e.cluster.yaml
deleted file mode 100644
index ecd1f99..0000000
--- a/.github/workflows/e2e.cluster.yaml
+++ /dev/null
@@ -1,57 +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:
-        config-file:
-          - cluster/zk/es/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: ${{ matrix.config-file }}
-
-  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.event.yaml b/.github/workflows/e2e.event.yaml
deleted file mode 100644
index 98f1e06..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:
-        config-file:
-          - event/h2/e2e.yaml
-          - event/es/e2e.yaml
-          - event/mysql/e2e.yaml
-          - event/influxdb/e2e.yaml
-          - event/iotdb/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: ${{ matrix.config-file }}
diff --git a/.github/workflows/e2e.istio.yaml b/.github/workflows/e2e.istio.yaml
deleted file mode 100644
index de5a4e4..0000000
--- a/.github/workflows/e2e.istio.yaml
+++ /dev/null
@@ -1,76 +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:
-  SKIP_TEST: true
-  TAG: ${{ github.sha }}
-
-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, 1.10.3, 1.11.4, 1.12.0, 1.13.1 ]
-    name: Istio(${{ matrix.istio_version }})+ALS(${{ matrix.analyzer }})
-    env:
-      ISTIO_VERSION: ${{ matrix.istio_version }}
-      ALS_ANALYZER: ${{ matrix.analyzer }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: istio/als/e2e.yaml
-
-  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, 1.10.3, 1.11.4, 1.12.0, 1.13.1 ]
-    env:
-      ISTIO_VERSION: ${{ matrix.istio_version }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: istio/metrics/e2e.yaml
diff --git a/.github/workflows/e2e.jdk-versions.yaml 
b/.github/workflows/e2e.jdk-versions.yaml
deleted file mode 100644
index 49acc2e..0000000
--- a/.github/workflows/e2e.jdk-versions.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 * * *'
-
-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, 11, 17 ]
-    env:
-      SW_AGENT_JDK_VERSION: ${{ matrix.jdk }}
-      SW_OAP_BASE_IMAGE: eclipse-temurin:${{ matrix.jdk }}-jre
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Set Up Java
-        uses: actions/setup-java@v2
-        with:
-          distribution: temurin
-          java-version: ${{ matrix.jdk }}
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: simple/jdk/e2e.yaml
-
-  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 e5ba923..0000000
--- a/.github/workflows/e2e.js.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 * * *'
-
-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
-    timeout-minutes: 30
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: browser/e2e.yaml
diff --git a/.github/workflows/e2e.kafka.yaml b/.github/workflows/e2e.kafka.yaml
deleted file mode 100644
index 1b702d0..0000000
--- a/.github/workflows/e2e.kafka.yaml
+++ /dev/null
@@ -1,58 +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-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
-            config-file: kafka/simple-so11y/e2e.yaml
-          - name: Profiling
-            config-file: kafka/profile/e2e.yaml
-          - name: Meter
-            config-file: kafka/meter/e2e.yaml
-          - name: Log
-            config-file: kafka/log/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: ${{ matrix.case.config-file }}
diff --git a/.github/workflows/e2e.log.yaml b/.github/workflows/e2e.log.yaml
deleted file mode 100644
index 55ccc27..0000000
--- a/.github/workflows/e2e.log.yaml
+++ /dev/null
@@ -1,85 +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:
-        config-file:
-          - log/h2/e2e.yaml
-          - log/mysql/e2e.yaml
-          - log/influxdb/e2e.yaml
-          - log/postgres/e2e.yaml
-          - log/iotdb/e2e.yaml
-        include:
-          - es-version: 6.3.2
-            config-file: log/es/e2e.yaml
-          - es-version: 7.0.0
-            config-file: log/es/e2e.yaml
-          - es-version: 7.8.0
-            config-file: log/es/e2e.yaml
-          - es-version: 7.10.1
-            config-file: log/es/e2e.yaml
-          - es-version: 7.14.0
-            config-file: log/es/e2e.yaml
-          - es-version: 7.15.0
-            config-file: log/es/e2e.yaml
-          - es-version: 8.0.0
-            config-file: log/es/e2e.yaml
-
-          - es-version: 6.3.2
-            config-file: log/fluent-bit/e2e.yaml
-          - es-version: 7.0.0
-            config-file: log/fluent-bit/e2e.yaml
-          - es-version: 7.8.0
-            config-file: log/fluent-bit/e2e.yaml
-          - es-version: 7.10.1
-            config-file: log/fluent-bit/e2e.yaml
-          - es-version: 7.14.0
-            config-file: log/fluent-bit/e2e.yaml
-          - es-version: 7.15.0
-            config-file: log/fluent-bit/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        env:
-          ES_VERSION: ${{ matrix.es-version }}
-        with:
-          config-file: ${{ matrix.config-file }}
diff --git a/.github/workflows/e2e.nodejs.yaml 
b/.github/workflows/e2e.nodejs.yaml
deleted file mode 100644
index 67aa344..0000000
--- a/.github/workflows/e2e.nodejs.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 * * *'
-
-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: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: nodejs/e2e.yaml
diff --git a/.github/workflows/e2e.php.yaml b/.github/workflows/e2e.php.yaml
deleted file mode 100644
index 5627839..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 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-
-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: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: php/e2e.yaml
diff --git a/.github/workflows/e2e.profiling.yaml 
b/.github/workflows/e2e.profiling.yaml
deleted file mode 100644
index bc5b9ac..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:
-        config-file:
-          - profile/h2/e2e.yaml
-          - profile/es/e2e.yaml
-          - profile/mysql/e2e.yaml
-          - profile/influxdb/e2e.yaml
-          - profile/iotdb/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: ${{ matrix.config-file }}
diff --git a/.github/workflows/e2e.python.yaml 
b/.github/workflows/e2e.python.yaml
deleted file mode 100644
index 510ae14..0000000
--- a/.github/workflows/e2e.python.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 * * *'
-
-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: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: python/e2e.yaml
diff --git a/.github/workflows/e2e.satellite.yaml 
b/.github/workflows/e2e.satellite.yaml
deleted file mode 100644
index 48c19f8..0000000
--- a/.github/workflows/e2e.satellite.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 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
-  SW_STORAGE: h2
-
-concurrency:
-  group: e2e-satellite-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  Satellite:
-    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
-    name: Satellite
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: satellite/native-protocols/e2e.yaml
diff --git a/.github/workflows/e2e.so11y.yaml b/.github/workflows/e2e.so11y.yaml
deleted file mode 100644
index ee77af1..0000000
--- a/.github/workflows/e2e.so11y.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 * * *'
-
-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: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: so11y/e2e.yaml
diff --git a/.github/workflows/e2e.storages.yaml 
b/.github/workflows/e2e.storages.yaml
deleted file mode 100644
index b35a092..0000000
--- a/.github/workflows/e2e.storages.yaml
+++ /dev/null
@@ -1,86 +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:
-        config-file:
-          - storage/h2/e2e.yaml
-          - storage/mysql/e2e.yaml
-          - storage/tidb/e2e.yaml
-          - storage/influxdb/e2e.yaml
-          - storage/postgres/e2e.yaml
-          - storage/iotdb/e2e.yaml
-        include:
-          - opensearch-version: 1.1.0
-            config-file: storage/opensearch/e2e.yaml
-          - opensearch-version: 1.2.0
-            config-file: storage/opensearch/e2e.yaml
-
-          - es-version: 6.3.2
-            config-file: storage/es/e2e.yaml
-          - es-version: 7.0.0
-            config-file: storage/es/e2e.yaml
-          - es-version: 7.8.0
-            config-file: storage/es/e2e.yaml
-          - es-version: 7.10.1
-            config-file: storage/es/e2e.yaml
-          - es-version: 7.14.0
-            config-file: storage/es/e2e.yaml
-          - es-version: 7.15.0
-            config-file: storage/es/e2e.yaml
-          - es-version: 8.0.0
-            config-file: storage/es/e2e.yaml
-
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        env:
-          ES_VERSION: ${{ matrix.es-version }}
-          OPENSEARCH_VERSION: ${{ matrix.opensearch-version }}
-        with:
-          config-file: ${{ matrix.config-file }}
-
-  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 38bc321..0000000
--- a/.github/workflows/e2e.ttl.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:
-    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:
-        config-file:
-          - ttl/tidb/e2e.yaml
-          - ttl/influxdb/e2e.yaml
-          - ttl/postgresql/e2e.yaml
-          - ttl/iotdb/e2e.yaml
-        include:
-          - es-version: 6.3.2
-            config-file: ttl/es/e2e.yaml
-          - es-version: 7.15.0
-            config-file: ttl/es/e2e.yaml
-          - es-version: 8.0.0
-            config-file: ttl/es/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        env:
-          ES_VERSION: ${{ matrix.es-version }}
-        with:
-          config-file: ${{ matrix.config-file }}
diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml
deleted file mode 100644
index adaeb54..0000000
--- a/.github/workflows/e2e.yaml
+++ /dev/null
@@ -1,67 +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: ${{ matrix.case.name }}
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        case:
-          - name: Auth
-            config-file: simple/auth/e2e.yaml
-          - name: SSL
-            config-file: simple/ssl/e2e.yaml
-          - name: mTLS
-            config-file: simple/mtls/e2e.yaml
-          - name: Lua Nginx
-            config-file: lua/e2e.yaml
-          - name: Gateway
-            config-file: gateway/e2e.yaml
-          - name: Meter
-            config-file: meter/e2e.yaml
-          - name: VM Zabbix
-            config-file: vm/zabbix/e2e.yaml
-          - name: VM Prometheus Node Exporter
-            config-file: vm/prometheus-node-exporter/e2e.yaml
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: ${{ matrix.case.config-file }}
diff --git a/.github/workflows/e2e.go.yaml 
b/.github/workflows/skywalking-fake.yaml
similarity index 61%
rename from .github/workflows/e2e.go.yaml
rename to .github/workflows/skywalking-fake.yaml
index b79b128..1a0b76b 100644
--- a/.github/workflows/e2e.go.yaml
+++ b/.github/workflows/skywalking-fake.yaml
@@ -14,34 +14,31 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: E2E
+name: CI
 
 on:
   pull_request:
-    paths:
-      - '**'
-      - '!**.md'
-  schedule:
-    - cron: '0 18 * * *'
-
-env:
-  SW_AGENT_JDK_VERSION: 8
+    paths-ignore:
+      - "!*.md"
+      - "!*.txt"
+      - "!skywalking-ui"
+      - "!.asf.yaml"
+      - "!.dlc.yaml"
+      - "!.licenserc.yaml"
+      - "!docs/menu.yml"
+      - "!.github/workflows/codeql.yaml"
+      - "!dist-material/release-docs"
+      - "!*/component-libraries.yml"
 
 concurrency:
-  group: e2e-go-${{ github.event.pull_request.number || github.ref }}
+  group: skywalking-fake-${{ 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
+  required:
+    name: Required
     runs-on: ubuntu-latest
-    timeout-minutes: 90
+    timeout-minutes: 10
     steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Run E2E Test
-        uses: ./.github/actions/infra-e2e-test
-        with:
-          config-file: go/e2e.yaml
+      - name: Merge Requirement
+        run: echo 'Passed!'
diff --git a/.github/workflows/skywalking.yaml 
b/.github/workflows/skywalking.yaml
new file mode 100644
index 0000000..0b21754
--- /dev/null
+++ b/.github/workflows/skywalking.yaml
@@ -0,0 +1,640 @@
+# 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: CI
+
+on:
+  pull_request:
+    paths-ignore:
+      - "*.md"
+      - "*.txt"
+      - "skywalking-ui"
+      - ".asf.yaml"
+      - ".dlc.yaml"
+      - ".licenserc.yaml"
+      - "docs/menu.yml"
+      - ".github/workflows/codeql.yaml"
+      - "dist-material/release-docs"
+      - "*/component-libraries.yml"
+  schedule:
+    - cron: '0 18 * * *'  # TimeZone: UTC 0
+
+concurrency:
+  group: skywalking-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
+env:
+  SW_AGENT_JDK_VERSION: 8
+  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false 
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+
+jobs:
+  license-header:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: License header
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Check license header
+        uses: apache/skywalking-eyes@831233e32ab3a2fbc28fe934f4983c4edae6e722
+
+  code-style:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Code style
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Check code style
+        run: ./mvnw clean checkstyle:check
+
+  sanity-check:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Sanity check results
+    needs: [ license-header, code-style ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - name: Check results
+        run: |
+          if [[ ${{ needs.license-header.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.code-style.result }} != 'success' ]]; then
+            exit -1
+          fi
+
+  dist-tar:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Build dist tar
+    needs: [ sanity-check ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache maven repository
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: ${{ runner.os }}-maven-
+      - name: Build distribution tar
+        run: |
+          ./mvnw clean install -B -q \
+            -Dmaven.test.skip \
+            -Dmaven.javadoc.skip \
+            -Dcheckstyle.skip
+      - uses: actions/upload-artifact@v2
+        name: Upload distribution tar
+        with:
+          name: dist
+          path: dist
+
+  docker:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Docker images
+    needs: [ dist-tar ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    strategy:
+      matrix:
+        java-version: [ 8, 11, 17 ]
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - uses: actions/download-artifact@v2
+        name: Download distribution tar
+        with:
+          name: dist
+          path: dist
+      - name: Set up Java
+        uses: actions/setup-java@v2
+        with:
+          distribution: temurin
+          java-version: ${{ matrix.java-version }}
+      - name: Build and save docker images
+        env:
+          SW_OAP_BASE_IMAGE: eclipse-temurin:${{ matrix.java-version }}-jre
+        run: |
+          make docker.all || make docker.all
+          docker save -o docker-images-skywalking-oap.tar skywalking/oap:latest
+          docker save -o docker-images-skywalking-ui.tar skywalking/ui:latest
+      - name: Upload docker images
+        uses: actions/upload-artifact@v2
+        with:
+          name: docker-images-${{ matrix.java-version }}
+          path: docker-images-skywalking-*.tar
+
+  dependency-license:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Dependency licenses
+    needs: [ dist-tar ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache maven repository
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: ${{ runner.os }}-maven-
+      - uses: actions/download-artifact@v2
+        with:
+          name: dist
+          path: dist
+      - name: Check Dependencies Licenses
+        run: tools/dependencies/check-LICENSE.sh
+
+  unit-test:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Unit test
+    needs: [ sanity-check ]
+    runs-on: ${{ matrix.os }}-latest
+    timeout-minutes: 30
+    strategy:
+      matrix:
+        os: [ ubuntu, macos, windows ]
+        java-version: [ 8 ]
+        include:
+          - os: ubuntu
+            java-version: 11
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache maven repository
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: ${{ runner.os }}-maven-
+      - uses: actions/setup-java@v2
+        with:
+          java-version: ${{ matrix.java-version }}
+          distribution: adopt
+      - name: Unit test
+        run: ./mvnw clean verify -q -B -D"checkstyle.skip" || ./mvnw clean 
verify -q -B -D"checkstyle.skip"
+
+  integration-test:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Integration test
+    needs: [ sanity-check ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 60
+    strategy:
+      matrix:
+        java-version: [ 8, 11 ]
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache maven repository
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: ${{ runner.os }}-maven-
+      - uses: actions/setup-java@v2
+        with:
+          java-version: ${{ matrix.java-version }}
+          distribution: adopt
+      - name: Integration test
+        run: |
+          ./mvnw clean verify -q -B -Dcheckstyle.skip -DskipUTs 
-DskipITs=false || \
+          ./mvnw clean verify -q -B -Dcheckstyle.skip -DskipUTs -DskipITs=false
+
+  e2e-test:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: E2E test
+    needs: [ docker ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 60
+    strategy:
+      fail-fast: false
+      matrix:
+        test:
+          - name: Cluster ZK/ES
+            config: test/e2e-v2/cases/cluster/zk/es/e2e.yaml
+
+          - name: Agent NodeJS Backend
+            config: test/e2e-v2/cases/nodejs/e2e.yaml
+          - name: Agent Golang
+            config: test/e2e-v2/cases/go/e2e.yaml
+          - name: Agent NodeJS Frontend
+            config: test/e2e-v2/cases/browser/e2e.yaml
+          - name: Agent PHP
+            config: test/e2e-v2/cases/php/e2e.yaml
+          - name: Agent Python
+            config: test/e2e-v2/cases/python/e2e.yaml
+          - name: Agent Lua
+            config: test/e2e-v2/cases/lua/e2e.yaml
+
+          - name: Storage H2
+            config: test/e2e-v2/cases/storage/h2/e2e.yaml
+          - name: Storage MySQL
+            config: test/e2e-v2/cases/storage/mysql/e2e.yaml
+          - name: Storage TiDB
+            config: test/e2e-v2/cases/storage/tidb/e2e.yaml
+          - name: Storage InfluxDB
+            config: test/e2e-v2/cases/storage/influxdb/e2e.yaml
+          - name: Storage PostgreSQL
+            config: test/e2e-v2/cases/storage/postgres/e2e.yaml
+          - name: Storage IoTDB
+            config: test/e2e-v2/cases/storage/iotdb/e2e.yaml
+          - name: Storage ES 6.3.2
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=6.3.2
+          - name: Storage ES 7.0.0
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=7.0.0
+          - name: Storage ES 7.8.0
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=7.8.0
+          - name: Storage ES 7.10.1
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=7.10.1
+          - name: Storage ES 7.14.0
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=7.14.0
+          - name: Storage ES 7.15.0
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=7.15.0
+          - name: Storage ES 8.0.0
+            config: test/e2e-v2/cases/storage/es/e2e.yaml
+            env: ES_VERSION=8.0.0
+          - name: Storage OpenSearch 1.1.0
+            config: test/e2e-v2/cases/storage/opensearch/e2e.yaml
+            env: OPENSEARCH_VERSION=1.1.0
+          - name: Storage OpenSearch 1.2.0
+            config: test/e2e-v2/cases/storage/opensearch/e2e.yaml
+            env: OPENSEARCH_VERSION=1.2.0
+
+          - name: Alarm H2
+            config: test/e2e-v2/cases/alarm/h2/e2e.yaml
+          - name: Alarm ES
+            config: test/e2e-v2/cases/alarm/es/e2e.yaml
+          - name: Alarm MySQL
+            config: test/e2e-v2/cases/alarm/mysql/e2e.yaml
+          - name: Alarm InfluxDB
+            config: test/e2e-v2/cases/alarm/influxdb/e2e.yaml
+          - name: Alarm PostgreSQL
+            config: test/e2e-v2/cases/alarm/postgres/e2e.yaml
+          - name: Alarm IoTDB
+            config: test/e2e-v2/cases/alarm/iotdb/e2e.yaml
+
+          - name: TTL TiDB
+            config: test/e2e-v2/cases/ttl/tidb/e2e.yaml
+          - name: TTL InfluxDB
+            config: test/e2e-v2/cases/ttl/influxdb/e2e.yaml
+          - name: TTL PostgreSQL
+            config: test/e2e-v2/cases/ttl/postgresql/e2e.yaml
+          - name: TTL IotDB
+            config: test/e2e-v2/cases/ttl/iotdb/e2e.yaml
+          - name: TTL ES 6.3.2
+            config: test/e2e-v2/cases/ttl/es/e2e.yaml
+            env: ES_VERSION=6.3.2
+          - name: TTL ES 7.15.0
+            config: test/e2e-v2/cases/ttl/es/e2e.yaml
+            env: ES_VERSION=7.15.0
+          - name: TTL ES 8.0.0
+            config: test/e2e-v2/cases/ttl/es/e2e.yaml
+            env: ES_VERSION=8.0.0
+
+          - name: Event H2
+            config: test/e2e-v2/cases/event/h2/e2e.yaml
+          - name: Event ES
+            config: test/e2e-v2/cases/event/es/e2e.yaml
+          - name: Event MySQL
+            config: test/e2e-v2/cases/event/mysql/e2e.yaml
+          - name: Event InfluxDB
+            config: test/e2e-v2/cases/event/influxdb/e2e.yaml
+          - name: Event IoTDB
+            config: test/e2e-v2/cases/event/iotdb/e2e.yaml
+
+          - name: Log H2
+            config: test/e2e-v2/cases/log/h2/e2e.yaml
+          - name: Log MySQL
+            config: test/e2e-v2/cases/log/mysql/e2e.yaml
+          - name: Log InfluxDB
+            config: test/e2e-v2/cases/log/influxdb/e2e.yaml
+          - name: Log PostgreSQL
+            config: test/e2e-v2/cases/log/postgres/e2e.yaml
+          - name: Log IoTDB
+            config: test/e2e-v2/cases/log/iotdb/e2e.yaml
+          - name: Log ES 6.3.2
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=6.3.2
+          - name: Log ES 7.0.0
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=7.0.0
+          - name: Log ES 7.8.0
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=7.8.0
+          - name: Log ES 7.10.1
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=7.10.1
+          - name: Log ES 7.14.0
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=7.14.0
+          - name: Log ES 7.15.0
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=7.15.0
+          - name: Log ES 8.0.0
+            config: test/e2e-v2/cases/log/es/e2e.yaml
+            env: ES_VERSION=8.0.0
+
+          - name: Log FluentBit ES 6.3.2
+            config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+            env: ES_VERSION=6.3.2
+          - name: Log FluentBit ES 7.0.0
+            config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+            env: ES_VERSION=7.0.0
+          - name: Log FluentBit ES 7.8.0
+            config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+            env: ES_VERSION=7.8.0
+          - name: Log FluentBit ES 7.10.1
+            config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+            env: ES_VERSION=7.10.1
+          - name: Log FluentBit ES 7.14.0
+            config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+            env: ES_VERSION=7.14.0
+          - name: Log FluentBit ES 7.15.0
+            config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+            env: ES_VERSION=7.15.0
+
+          - name: Profiling H2
+            config: test/e2e-v2/cases/profile/h2/e2e.yaml
+          - name: Profiling ES
+            config: test/e2e-v2/cases/profile/es/e2e.yaml
+          - name: Profiling MySQL
+            config: test/e2e-v2/cases/profile/mysql/e2e.yaml
+          - name: Profiling InfluxDB
+            config: test/e2e-v2/cases/profile/influxdb/e2e.yaml
+          - name: Profiling IoTDB
+            config: test/e2e-v2/cases/profile/iotdb/e2e.yaml
+
+          - name: Kafka Basic
+            config: test/e2e-v2/cases/kafka/simple-so11y/e2e.yaml
+          - name: Kafka Profiling
+            config: test/e2e-v2/cases/kafka/profile/e2e.yaml
+          - name: Kafka Meter
+            config: test/e2e-v2/cases/kafka/meter/e2e.yaml
+          - name: Kafka Log
+            config: test/e2e-v2/cases/kafka/log/e2e.yaml
+
+          - name: Istio Metrics Service 1.8.2
+            config: test/e2e-v2/cases/istio/metrics/e2e.yaml
+            env: ISTIO_VERSION=1.8.2
+          - name: Istio Metrics Service 1.9.1
+            config: test/e2e-v2/cases/istio/metrics/e2e.yaml
+            env: ISTIO_VERSION=1.9.1
+          - name: Istio Metrics Service 1.10.3
+            config: test/e2e-v2/cases/istio/metrics/e2e.yaml
+            env: ISTIO_VERSION=1.10.3
+          - name: Istio Metrics Service 1.11.4
+            config: test/e2e-v2/cases/istio/metrics/e2e.yaml
+            env: ISTIO_VERSION=1.11.4
+          - name: Istio Metrics Service 1.12.0
+            config: test/e2e-v2/cases/istio/metrics/e2e.yaml
+            env: ISTIO_VERSION=1.12.0
+          - name: Istio Metrics Service 1.13.1
+            config: test/e2e-v2/cases/istio/metrics/e2e.yaml
+            env: ISTIO_VERSION=1.13.1
+
+          - name: Satellite
+            config: test/e2e-v2/cases/satellite/native-protocols/e2e.yaml
+          - name: Auth
+            config: test/e2e-v2/cases/simple/auth/e2e.yaml
+          - name: SSL
+            config: test/e2e-v2/cases/simple/ssl/e2e.yaml
+          - name: mTLS
+            config: test/e2e-v2/cases/simple/mtls/e2e.yaml
+          - name: Virtual Gateway
+            config: test/e2e-v2/cases/gateway/e2e.yaml
+          - name: Meter
+            config: test/e2e-v2/cases/meter/e2e.yaml
+          - name: VM Zabbix
+            config: test/e2e-v2/cases/vm/zabbix/e2e.yaml
+          - name: VM Prometheus
+            config: test/e2e-v2/cases/vm/prometheus-node-exporter/e2e.yaml
+          - name: So11y
+            config: test/e2e-v2/cases/so11y/e2e.yaml
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - uses: actions/download-artifact@v2
+        name: Download docker images
+        with:
+          name: docker-images-8
+          path: docker-images
+      - name: Load docker images
+        run: find docker-images -name "*.tar" -exec docker load -i {} \;
+      - name: Prepare test services
+        shell: bash
+        run: ./mvnw -B -f test/e2e-v2/java-test-service/pom.xml clean package
+      - name: Setup Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: '1.16'
+      - name: Set env var
+        run: |
+          echo "${{ matrix.test.env }}"  >> $GITHUB_ENV
+      - name: ${{ matrix.test.name }}
+        uses: apache/skywalking-infra-e2e@main
+        with:
+          e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
+
+  e2e-test-istio:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: E2E test
+    needs: [ docker ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 60
+    strategy:
+      fail-fast: false
+      matrix:
+        analyzer: [ k8s-mesh, mx-mesh ]
+        istio_version: [ 1.7.1, 1.8.2, 1.9.1, 1.10.3, 1.11.4, 1.12.0, 1.13.1 ]
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - uses: actions/download-artifact@v2
+        name: Download docker images
+        with:
+          name: docker-images-8
+          path: docker-images
+      - name: Load docker images
+        run: find docker-images -name "*.tar" -exec docker load -i {} \;
+      - name: Setup Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: '1.16'
+      - name: ${{ matrix.test.name }}
+        uses: apache/skywalking-infra-e2e@main
+        env:
+          ISTIO_VERSION: ${{ matrix.istio_version }}
+          ALS_ANALYZER: ${{ matrix.analyzer }}
+        with:
+          e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/istio/als/e2e.yaml
+
+  e2e-test-java-versions:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: E2E test
+    needs: [ docker ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 60
+    strategy:
+      fail-fast: false
+      matrix:
+        java-version: [ 8, 11, 17 ]
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - uses: actions/download-artifact@v2
+        name: Download docker images
+        with:
+          name: docker-images-${{ matrix.java-version }}
+          path: docker-images
+      - name: Load docker images
+        run: find docker-images -name "*.tar" -exec docker load -i {} \;
+      - uses: actions/setup-java@v2
+        with:
+          java-version: ${{ matrix.java-version }}
+          distribution: adopt
+      - name: Prepare test services
+        shell: bash
+        run: ./mvnw -B -f test/e2e-v2/java-test-service/pom.xml clean package
+      - name: Setup Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: '1.16'
+      - name: Java version ${{ matrix.java-version }}
+        uses: apache/skywalking-infra-e2e@main
+        env:
+          SW_AGENT_JDK_VERSION: ${{ matrix.java-version }}
+        with:
+          e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/simple/jdk/e2e.yaml
+
+  ci:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: CI
+    needs: [ unit-test, integration-test ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - name: Merge Requirement
+        run: |
+          if [[ ${{ needs.unit-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.integration-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+
+  single:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Single
+    needs: [ e2e-test, e2e-test-istio, e2e-test-java-versions ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - name: Merge Requirement
+        run: |
+          if [[ ${{ needs.e2e-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-istio.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-java-versions.result }} != 'success' ]]; 
then
+            exit -1
+          fi
+
+  cluster:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Cluster
+    needs: [ e2e-test, e2e-test-istio, e2e-test-java-versions ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - name: Merge Requirement
+        run: |
+          if [[ ${{ needs.e2e-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-istio.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-java-versions.result }} != 'success' ]]; 
then
+            exit -1
+          fi
+
+  storage:
+    if: (github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || (github.event_name != 'schedule')
+    name: Storage
+    needs: [ e2e-test, e2e-test-istio, e2e-test-java-versions ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - name: Merge Requirement
+        run: |
+          if [[ ${{ needs.e2e-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-istio.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-java-versions.result }} != 'success' ]]; 
then
+            exit -1
+          fi
+
+  required:
+    if: always()
+    name: Required
+    needs: [ unit-test, integration-test, e2e-test, e2e-test-istio, 
e2e-test-java-versions ]
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - name: Merge Requirement
+        run: |
+          if [[ ${{ needs.unit-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.integration-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-istio.result }} != 'success' ]]; then
+            exit -1
+          fi
+          if [[ ${{ needs.e2e-test-java-versions.result }} != 'success' ]]; 
then
+            exit -1
+          fi
diff --git a/CHANGES.md b/CHANGES.md
index 0f7f79e..c7bbe28 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -29,6 +29,8 @@ Release Notes.
     * Upgrade maven-source-plugin to 3.2.1.
 * Update codeStyle.xml to fix incompatibility on M1's IntelliJ IDEA 2021.3.2.
 * Update frontend-maven-plugin to 1.12 and npm to 16.14.0 for booster UI build.
+* Improve CI with the GHA new feature "run failed jobs".
+* Fix `./mvnw compile` not work if `./mvnw install` is not executed at least 
once.
 
 #### OAP Server
 
diff --git a/docs/en/guides/README.md b/docs/en/guides/README.md
index a7cea64..72c6169 100755
--- a/docs/en/guides/README.md
+++ b/docs/en/guides/README.md
@@ -9,8 +9,8 @@ There are many ways you can contribute to the SkyWalking 
community.
 - Submit an issue or start a discussion at [GitHub 
issue](https://github.com/apache/skywalking/issues/new).
 - See all mail list discussions at [website list 
review](https://lists.apache.org/[email protected]).
 If you are already a SkyWalking committer, you can log in and use the mail 
list in the browser mode. Otherwise, subscribe following the step below.
-- Issue reports and discussions may also take place via 
`[email protected]`. 
-Mail to `[email protected]`, and follow the instructions in 
the reply to subscribe to the mail list. 
+- Issue reports and discussions may also take place via 
`[email protected]`.
+Mail to `[email protected]`, and follow the instructions in 
the reply to subscribe to the mail list.
 
 ## Contact Us
 All of the following channels are open to the community.
@@ -34,24 +34,24 @@ If the new codes involve other components or libraries, you 
should also write in
 
 SkyWalking leverages the plugin `maven-surefire-plugin` to run the UTs and 
uses `maven-failsafe-plugin`
 to run the ITs. `maven-surefire-plugin` excludes ITs (whose class name starts 
with `IT`)
-and leaves them for `maven-failsafe-plugin` to run, which is bound to the 
`verify` goal and `CI-with-IT` profile.
+and leaves them for `maven-failsafe-plugin` to run, which is bound to the 
`verify` goal.
 Therefore, to run the UTs, try `./mvnw clean test`, which only runs the UTs 
but not the ITs.
 
-If you would like to run the ITs, please activate the `CI-with-IT` profile
+If you would like to run the ITs, please set the property `skipITs` to false
 as well as the the profiles of the modules whose ITs you want to run.
-E.g. if you would like to run the ITs in `oap-server`, try `./mvnw 
-Pbackend,CI-with-IT clean verify`,
-and if you would like to run all the ITs, simply run `./mvnw -Pall,CI-with-IT 
clean verify`.
+E.g. if you would like to run the ITs in `oap-server`, try `./mvnw -Pbackend 
clean verify -DskipITs=false`,
+and if you would like to run all the ITs, simply run `./mvnw clean verify 
-DskipITs=false`.
 
-Please be advised that if you're writing integration tests, name it with the 
pattern `IT*` so they would only run with the `CI-with-IT` profile.
+Please be advised that if you're writing integration tests, name it with the 
pattern `IT*` so they would only run when property `skipITs` is set to false.
 
 ### Java Microbenchmark Harness (JMH)
 JMH is a Java harness for building, running, and analysing 
nano/micro/milli/macro benchmarks written in Java and other languages targeting 
the JVM.
 
-We have a module called `microbench` which performs a series of 
micro-benchmark tests for JMH testing. 
-Make new JMH tests extend the 
`org.apache.skywalking.oap.server.microbench.base.AbstractMicrobenchmark` 
+We have a module called `microbench` which performs a series of 
micro-benchmark tests for JMH testing.
+Make new JMH tests extend the 
`org.apache.skywalking.oap.server.microbench.base.AbstractMicrobenchmark`
 to customize runtime conditions (Measurement, Fork, Warmup, etc.).
 
-JMH tests could run as a normal unit test. And they could run as an 
independent uber jar via `java -jar benchmark.jar` for all benchmarks, 
+JMH tests could run as a normal unit test. And they could run as an 
independent uber jar via `java -jar benchmark.jar` for all benchmarks,
 or via `java -jar /benchmarks.jar exampleClassName` for a specific test.
 
 Output test results in JSON format, you can add `-rf json` like `java -jar 
benchmarks.jar -rf json`, if you run through the IDE, you can configure the 
`-DperfReportDir=savePath` parameter to set the JMH report result save path, a 
report results in JSON format will be generated when the run ends.
@@ -64,7 +64,7 @@ Since version 6.3.0, we have introduced more automatic tests 
to perform software
 > End-to-end testing is a methodology used to test whether the flow of an 
 > application is performing as designed from start to finish.
  The purpose of carrying out end-to-end tests is to identify system 
dependencies and to ensure that the right information is passed between various 
system components and systems.
 
-The E2E test involves some/all of the OAP server, storage, coordinator, 
webapp, and the instrumented services, all of which are orchestrated by 
`docker-compose` or `KinD`. 
+The E2E test involves some/all of the OAP server, storage, coordinator, 
webapp, and the instrumented services, all of which are orchestrated by 
`docker-compose` or `KinD`.
 Since version 8.9.0, we immigrate to e2e-v2 which leverage 
[skywalking-infra-e2e](https://github.com/apache/skywalking-infra-e2e) and 
[skywalking-cli](https://github.com/apache/skywalking-cli) to do the whole e2e 
process.
 `skywalking-infra-e2e` is used to control the e2e process and `skywalking-cli` 
is used to interact with the OAP such as request and get response metris from 
OAP.
 
@@ -76,9 +76,9 @@ Since version 8.9.0, we immigrate to e2e-v2 which leverage 
[skywalking-infra-e2e
 
 - Orchestrate the components
 
-The goal of the E2E tests is to test the SkyWalking project as a whole, 
including the OAP server, storage, coordinator, webapp, and even the frontend 
UI (not for now), on the single node mode as well as the cluster mode. 
Therefore, the first step is to determine what case we are going to verify, and 
orchestrate the 
+The goal of the E2E tests is to test the SkyWalking project as a whole, 
including the OAP server, storage, coordinator, webapp, and even the frontend 
UI (not for now), on the single node mode as well as the cluster mode. 
Therefore, the first step is to determine what case we are going to verify, and 
orchestrate the
 components.
- 
+
 To make the orchestration process easier, we're using a 
[docker-compose](https://docs.docker.com/compose/) that provides a simple file 
format (`docker-compose.yml`) for orchestrating the required containers, and 
offers an opportunity to define the dependencies of the components.
 
 Follow these steps:
@@ -105,11 +105,11 @@ are committed and included in the PR, or reset the git 
HEAD to the remote and ve
 The SkyWalking project supports various extensions of existing features. If 
you are interesting in writing extensions,
 read the following guides.
 
-This guides you in developing SkyWalking agent plugins to support more 
frameworks. Developers for both open source and private plugins should read 
this. 
+This guides you in developing SkyWalking agent plugins to support more 
frameworks. Developers for both open source and private plugins should read 
this.
 - If you would like to build a new probe or plugin in any language, please 
read the [Component library definition and 
extension](Component-library-settings.md) document.
-- [Storage extension development guide](storage-extention.md). Potential 
contributors can learn how to build a new 
+- [Storage extension development guide](storage-extention.md). Potential 
contributors can learn how to build a new
 storage implementor in addition to the official one.
-- Customize analysis using OAL scripts. OAL scripts are located in 
`config/oal/*.oal`. You could modify them and reboot the OAP server. Read 
+- Customize analysis using OAL scripts. OAL scripts are located in 
`config/oal/*.oal`. You could modify them and reboot the OAP server. Read
 [Observability Analysis Language Introduction](../concepts-and-designs/oal.md) 
to learn more about OAL scripts.
 - [Source and scope extension for new metrics](source-extension.md). For 
analysis of a new metric which SkyWalking
 hasn't yet provided, add a new receiver.
diff --git 
a/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
 
b/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
index a87efa5..b38e95f 100644
--- 
a/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
+++ 
b/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
@@ -89,6 +89,7 @@ public class ITElasticSearchTest {
                                    .asCompatibleSubstituteFor(
                                        
"docker.elastic.co/elasticsearch/elasticsearch-oss"))
                     .withEnv("plugins.security.disabled", "true")
+                    .withStartupTimeout(java.time.Duration.ofMinutes(5))
             }
         });
     }
diff --git a/oap-server/server-starter/pom.xml 
b/oap-server/server-starter/pom.xml
index c80a88a..2916afe 100644
--- a/oap-server/server-starter/pom.xml
+++ b/oap-server/server-starter/pom.xml
@@ -323,7 +323,7 @@
                 <executions>
                     <execution>
                         <id>copy-dependencies</id>
-                        <phase>process-resources</phase>
+                        <phase>package</phase>
                         <goals>
                             <goal>copy-dependencies</goal>
                         </goals>
diff --git 
a/oap-server/server-tools/profile-exporter/tool-profile-snapshot-exporter/pom.xml
 
b/oap-server/server-tools/profile-exporter/tool-profile-snapshot-exporter/pom.xml
index 3eb9e19..45eff6d 100644
--- 
a/oap-server/server-tools/profile-exporter/tool-profile-snapshot-exporter/pom.xml
+++ 
b/oap-server/server-tools/profile-exporter/tool-profile-snapshot-exporter/pom.xml
@@ -44,7 +44,7 @@
                 <executions>
                     <execution>
                         <id>copy-dependencies</id>
-                        <phase>process-resources</phase>
+                        <phase>package</phase>
                         <goals>
                             <goal>copy-dependencies</goal>
                         </goals>
diff --git a/pom.xml b/pom.xml
index d30061e..aeb3cc6 100755
--- a/pom.xml
+++ b/pom.xml
@@ -142,28 +142,6 @@
                 </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>
@@ -199,6 +177,8 @@
         <checkstyle.fails.on.error>true</checkstyle.fails.on.error>
         <assertj-core.version>3.20.2</assertj-core.version>
 
+        <skipUTs>false</skipUTs>
+        <skipITs>true</skipITs>
     </properties>
 
     <dependencies>
@@ -323,7 +303,19 @@
                     <artifactId>maven-assembly-plugin</artifactId>
                 </plugin>
                 <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-failsafe-plugin</artifactId>
+                    <configuration>
+                        <skip>${skipITs}</skip>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>integration-test</goal>
+                                <goal>verify</goal>
+                            </goals>
+                        </execution>
+                    </executions>
                 </plugin>
                 <plugin>
                     <artifactId>maven-jar-plugin</artifactId>
@@ -334,14 +326,14 @@
                 <!--
                     maven-surefire-plugin will exclude integration tests (ITs)
                     and leave them for maven-failsafe-plugin to run, which is 
bound to the `verify` goal.
-                    If you want to run the ITs please activate the CI-with-IT 
profile
-                    as well as the the profiles of the modules whose ITs you 
want to run.
-                    e.g. you want to run the ITs in oap-server, run `./mvnw 
-Pbackend,CI-with-IT clean verify`
+                    If you want to run the ITs please set the property skipITs 
to false (-DskipITs=false),
+                    e.g. you want to run the ITs in oap-server, run `./mvnw 
-Pbackend clean verify -DskipITs=false`
                  -->
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
                     <configuration>
+                        <skip>${skipUTs}</skip>
                         <excludes>
                             <exclude>IT*.class</exclude>
                         </excludes>
@@ -401,6 +393,10 @@
                 </configuration>
             </plugin>
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-failsafe-plugin</artifactId>
+            </plugin>
+            <plugin>
                 <artifactId>maven-resources-plugin</artifactId>
                 <configuration>
                     <encoding>${project.build.sourceEncoding}</encoding>
diff --git a/test/e2e-v2/cases/istio/als/e2e.yaml 
b/test/e2e-v2/cases/istio/als/e2e.yaml
index f0be0ce..8c89f7a 100644
--- a/test/e2e-v2/cases/istio/als/e2e.yaml
+++ b/test/e2e-v2/cases/istio/als/e2e.yaml
@@ -21,8 +21,8 @@ setup:
   init-system-environment: ../../../script/env
   kind:
     import-images:
-      - skywalking/ui:$TAG
-      - skywalking/oap:$TAG
+      - skywalking/ui:latest
+      - skywalking/oap:latest
     expose-ports:
       - namespace: istio-system
         resource: service/skywalking-ui
@@ -64,8 +64,8 @@ setup:
                        --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 ui.image.tag=latest \
+                       --set oap.image.tag=latest \
                        --set oap.image.repository=skywalking/oap \
                        --set oap.storageType=elasticsearch
       wait:
diff --git a/test/e2e-v2/cases/istio/metrics/e2e.yaml 
b/test/e2e-v2/cases/istio/metrics/e2e.yaml
index 90f397c..fe4e728 100644
--- a/test/e2e-v2/cases/istio/metrics/e2e.yaml
+++ b/test/e2e-v2/cases/istio/metrics/e2e.yaml
@@ -21,8 +21,8 @@ setup:
   init-system-environment: ../../../script/env
   kind:
     import-images:
-      - skywalking/ui:$TAG
-      - skywalking/oap:$TAG
+      - skywalking/ui:latest
+      - skywalking/oap:latest
     expose-ports:
       - namespace: istio-system
         resource: service/skywalking-ui
@@ -74,8 +74,8 @@ setup:
                        --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 ui.image.tag=latest \
+                       --set oap.image.tag=latest \
                        --set oap.image.repository=skywalking/oap \
                        --set oap.storageType=elasticsearch
       wait:
diff --git a/test/e2e-v2/java-test-service/pom.xml 
b/test/e2e-v2/java-test-service/pom.xml
index 858b30f..c9d4430 100644
--- a/test/e2e-v2/java-test-service/pom.xml
+++ b/test/e2e-v2/java-test-service/pom.xml
@@ -126,23 +126,6 @@
                 </configuration>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-failsafe-plugin</artifactId>
-                <version>${maven-failsafe-plugin.version}</version>
-                <configuration>
-                    <includes>
-                        <include>**/*E2E.java</include>
-                    </includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>verify</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <artifactId>maven-checkstyle-plugin</artifactId>
                 <version>${maven-checkstyle-plugin.version}</version>
                 <configuration>

Reply via email to