Skip to content

Update CLI version in E2E Testing to fix the record query when updating the OAP version #3791

Update CLI version in E2E Testing to fix the record query when updating the OAP version

Update CLI version in E2E Testing to fix the record query when updating the OAP version #3791

Workflow file for this run

# 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:
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
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5 # Cache restore timeout
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@v3
with:
submodules: true
- name: Check license header
uses: apache/skywalking-eyes@5b7ee1731d036b5aac68f8bd3fc9e6f98ada082e
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@v3
with:
submodules: true
- name: Check code style
run: ./mvnw -B -q clean checkstyle:check
dependency-license:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.pom == 'true' || needs.changes.outputs.ui == 'true')
name: Dependency licenses
needs: [changes]
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "11"
cache: "maven"
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: "1.17"
- name: Check Dependencies Licenses
run: |
go install github.com/apache/skywalking-eyes/cmd/license-eye@5b7ee1731d036b5aac68f8bd3fc9e6f98ada082e
license-eye dependency resolve --summary ./dist-material/release-docs/LICENSE.tpl || exit 1
if [ ! -z "$(git diff -U0 ./dist-material/release-docs/LICENSE)" ]; then
echo "LICENSE file is not updated correctly"
git diff -U0 ./dist-material/release-docs/LICENSE
exit 1
fi
sanity-check:
if: ( always() && ! cancelled() ) && (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
name: Sanity check results
needs: [license-header, code-style, dependency-license]
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check results
run: |
[[ ${{ needs.license-header.result }} == 'success' ]] || exit 1;
[[ ${{ needs.code-style.result }} == 'success' ]] || exit 1;
[[ ${{ needs.dependency-license.result }} == 'success' ]] || [[ ${{ needs.dependency-license.result }} == 'skipped' ]] || exit 1;
changes:
# Check if anything related to Actual code / CI(functional testing) is changed
# set outputs for other jobs to access for if conditions
runs-on: ubuntu-latest
# To prevent error when there's no base branch
if: github.event_name != 'schedule'
timeout-minutes: 10
outputs:
oap: ${{ steps.filter-oap.outputs.any_modified }}
pom: ${{ steps.filter-pom.outputs.any_modified }}
ui: ${{ steps.filter-ui.outputs.any_modified }}
steps:
- uses: actions/checkout@v3 # required for push event
with:
fetch-depth: 0
- name: Filter OAP
id: filter-oap
# The GHA version is pinned by infra
uses: tj-actions/changed-files@v35.9.2
with:
files_ignore: |
**/*.{md,txt}
skywalking-ui
.asf.yaml
.dlc.json
.gitignore
.licenserc.yaml
codeStyle.xml
HEADER
LICENSE
NOTICE
docs/**
.github/workflows/codeql.yaml
.github/ISSUE_TEMPLATE/**
.github/PULL_REQUEST_TEMPLATE
dist-material/release-docs/**
component-libraries.yml
- name: Filter POM
id: filter-pom
uses: tj-actions/changed-files@v35.9.2
with:
files: |
**/pom.xml
- name: Filter UI
id: filter-ui
uses: tj-actions/changed-files@v35.9.2
with:
files: |
skywalking-ui
- name: List all modified files
if: steps.filter-oap.outputs.any_modified == 'true' || steps.filter-ui.outputs.any_modified == 'true' || steps.filter-pom.outputs.any_modified == 'true'
run: |
echo "Files that have changed or modified:"
echo "OAP: ${{ steps.filter-oap.outputs.all_changed_and_modified_files }}"
echo "POM: ${{ steps.filter-pom.outputs.all_changed_and_modified_files }}"
echo "UI: ${{ steps.filter-ui.outputs.all_changed_and_modified_files }}"
dist-tar:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: Build dist tar
needs: [sanity-check, changes]
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "11"
cache: "maven"
- name: Build distribution tar
run: |
./mvnw clean install javadoc:javadoc -B -q -Pall \
-Dmaven.test.skip \
-Dcheckstyle.skip
- name: Verify builds are reproducible
run: ./mvnw -Dmaven.test.skip clean verify artifact:compare -Pall
- uses: actions/upload-artifact@v3
name: Upload distribution tar
with:
name: dist
path: dist
docker:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: Docker images
needs: [dist-tar, changes]
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
java-version: [11, 17]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/download-artifact@v3
name: Download distribution tar
with:
name: dist
path: dist
- name: Set up Java
uses: actions/setup-java@v3
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@v3
with:
name: docker-images-${{ matrix.java-version }}
path: docker-images-skywalking-*.tar
unit-test:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: Unit test
needs: [sanity-check, changes]
runs-on: ${{ matrix.os }}-latest
timeout-minutes: 30
strategy:
matrix:
os: [ubuntu, macos, windows]
java-version: [11]
include:
- os: ubuntu
java-version: 17
- os: ubuntu
java-version: 21
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Cache maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-
- uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: temurin
- name: Unit test
run: ./mvnw clean test -q -B -D"checkstyle.skip" || ./mvnw clean test -q -B -D"checkstyle.skip"
integration-test:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: Integration test
needs: [sanity-check, changes]
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
java-version: [11, 17]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Cache maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-
- uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: temurin
- name: Integration test
run: |
# Exclude slow integration tests and run those tests separately below.
./mvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -DexcludedGroups=slow || \
./mvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -DexcludedGroups=slow
# Slow tests
slow-integration-test:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: Slow Integration Tests
needs: [sanity-check, changes]
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
test:
- name: ElasticSearch / OpenSearch
class: org.apache.skywalking.library.elasticsearch.ElasticSearchIT
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Cache maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: temurin
- name: ${{ matrix.test.name }}
run: |
./mvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -Dit.test=${{ matrix.test.class }} -Dfailsafe.failIfNoSpecifiedTests=false || \
./mvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -Dit.test=${{ matrix.test.class }} -Dfailsafe.failIfNoSpecifiedTests=false
e2e-test:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: E2E test
needs: [docker]
runs-on: ${{ matrix.test.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 NodeJS Frontend ES
config: test/e2e-v2/cases/browser/es/e2e.yaml
- name: Agent NodeJS Frontend ES Sharding
config: test/e2e-v2/cases/browser/es/es-sharding/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: BanyanDB
config: test/e2e-v2/cases/storage/banyandb/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 PostgreSQL
config: test/e2e-v2/cases/storage/postgres/e2e.yaml
- name: Storage ES 7.16.3
config: test/e2e-v2/cases/storage/es/e2e.yaml
env: ES_VERSION=7.16.3
- name: Storage ES 7.17.10
config: test/e2e-v2/cases/storage/es/e2e.yaml
env: ES_VERSION=7.17.10
- name: Storage ES 8.1.0
config: test/e2e-v2/cases/storage/es/e2e.yaml
env: ES_VERSION=8.1.0
- name: Storage ES 8.9.0
config: test/e2e-v2/cases/storage/es/e2e.yaml
env: ES_VERSION=8.9.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.3.10
config: test/e2e-v2/cases/storage/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.3.10
- name: Storage OpenSearch 2.4.0
config: test/e2e-v2/cases/storage/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.4.0
- name: Storage OpenSearch 2.8.0
config: test/e2e-v2/cases/storage/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.8.0
- name: Storage ES Sharding
config: test/e2e-v2/cases/storage/es/es-sharding/e2e.yaml
- 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 ES Sharding
config: test/e2e-v2/cases/alarm/es/es-sharding/e2e.yaml
- name: Alarm MySQL
config: test/e2e-v2/cases/alarm/mysql/e2e.yaml
- name: Alarm PostgreSQL
config: test/e2e-v2/cases/alarm/postgres/e2e.yaml
- name: TTL ES 7.16.3
config: test/e2e-v2/cases/ttl/es/e2e.yaml
env: ES_VERSION=7.16.3
- name: TTL ES 8.8.1
config: test/e2e-v2/cases/ttl/es/e2e.yaml
env: ES_VERSION=8.8.1
- name: Event BanyanDB
config: test/e2e-v2/cases/event/banyandb/e2e.yaml
- 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: 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 PostgreSQL
config: test/e2e-v2/cases/log/postgres/e2e.yaml
- name: Log ES 7.16.3
config: test/e2e-v2/cases/log/es/e2e.yaml
env: ES_VERSION=7.16.3
- name: Log ES 7.17.10
config: test/e2e-v2/cases/log/es/e2e.yaml
env: ES_VERSION=7.17.10
- name: Log ES 8.8.1 Shardng
config: test/e2e-v2/cases/log/es/es-sharding/e2e.yaml
env: ES_VERSION=8.8.1
- name: Log FluentBit ES 7.16.3
config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
env: ES_VERSION=7.16.3
- name: Log FluentBit ES 7.17.10
config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
env: ES_VERSION=7.17.10
- name: Log FluentBit ES 8.8.1
config: test/e2e-v2/cases/log/fluent-bit/e2e.yaml
env: ES_VERSION=8.8.1
- name: Trace Profiling BanyanDB
config: test/e2e-v2/cases/profiling/trace/banyandb/e2e.yaml
- name: Trace Profiling H2
config: test/e2e-v2/cases/profiling/trace/h2/e2e.yaml
- name: Trace Profiling ES
config: test/e2e-v2/cases/profiling/trace/es/e2e.yaml
- name: Trace Profiling ES Sharding
config: test/e2e-v2/cases/profiling/trace/es/es-sharding/e2e.yaml
- name: Trace Profiling MySQL
config: test/e2e-v2/cases/profiling/trace/mysql/e2e.yaml
- name: Trace Profiling Postgres
config: test/e2e-v2/cases/profiling/trace/postgres/e2e.yaml
- name: Trace Profiling OpenSearch 1.1.0
config: test/e2e-v2/cases/profiling/trace/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.1.0
- name: Trace Profiling OpenSearch 1.3.6
config: test/e2e-v2/cases/profiling/trace/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.3.6
- name: Trace Profiling OpenSearch 2.4.0
config: test/e2e-v2/cases/profiling/trace/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.4.0
- name: eBPF Profiling On CPU BanyanDB
config: test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
- name: eBPF Profiling On CPU H2
config: test/e2e-v2/cases/profiling/ebpf/oncpu/h2/e2e.yaml
- name: eBPF Profiling On CPU ES
config: test/e2e-v2/cases/profiling/ebpf/oncpu/es/e2e.yaml
- name: eBPF Profiling On CPU ES
config: test/e2e-v2/cases/profiling/ebpf/oncpu/es/es-sharding/e2e.yaml
- name: eBPF Profiling On CPU MySQL
config: test/e2e-v2/cases/profiling/ebpf/oncpu/mysql/e2e.yaml
- name: eBPF Profiling On CPU Postgres
config: test/e2e-v2/cases/profiling/ebpf/oncpu/postgres/e2e.yaml
- name: eBPF Profiling On CPU OpenSearch 1.1.0
config: test/e2e-v2/cases/profiling/ebpf/oncpu/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.1.0
- name: eBPF Profiling On CPU OpenSearch 1.3.6
config: test/e2e-v2/cases/profiling/ebpf/oncpu/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.3.6
- name: eBPF Profiling On CPU OpenSearch 2.4.0
config: test/e2e-v2/cases/profiling/ebpf/oncpu/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.4.0
- name: eBPF Profiling Off CPU
config: test/e2e-v2/cases/profiling/ebpf/offcpu/e2e.yaml
runs-on: ubuntu-20.04
- name: eBPF Profiling Network BanyanDB
config: test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml
- name: eBPF Profiling Network H2
config: test/e2e-v2/cases/profiling/ebpf/network/h2/e2e.yaml
- name: eBPF Profiling Network ES
config: test/e2e-v2/cases/profiling/ebpf/network/es/e2e.yaml
- name: eBPF Profiling Network ES Sharding
config: test/e2e-v2/cases/profiling/ebpf/network/es/es-sharding/e2e.yaml
- name: eBPF Profiling Network MySQL
config: test/e2e-v2/cases/profiling/ebpf/network/mysql/e2e.yaml
- name: eBPF Profiling Network Postgres
config: test/e2e-v2/cases/profiling/ebpf/network/postgres/e2e.yaml
- name: eBPF Profiling Network OpenSearch 1.1.0
config: test/e2e-v2/cases/profiling/ebpf/network/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.1.0
- name: eBPF Profiling Network OpenSearch 1.3.6
config: test/e2e-v2/cases/profiling/ebpf/network/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.3.6
- name: eBPF Profiling Network OpenSearch 2.4.0
config: test/e2e-v2/cases/profiling/ebpf/network/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.4.0
- name: Continuous Profiling BanyanDB
config: test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml
- name: Continuous Profiling H2
config: test/e2e-v2/cases/profiling/ebpf/continuous/h2/e2e.yaml
- name: Continuous Profiling ES
config: test/e2e-v2/cases/profiling/ebpf/continuous/es/e2e.yaml
- name: Continuous Profiling Sharding ES
config: test/e2e-v2/cases/profiling/ebpf/continuous/es/es-sharding/e2e.yaml
- name: Continuous Profiling MySQL
config: test/e2e-v2/cases/profiling/ebpf/continuous/mysql/e2e.yaml
- name: Continuous Profiling Postgres
config: test/e2e-v2/cases/profiling/ebpf/continuous/postgres/e2e.yaml
- name: Continuous Profiling OpenSearch 1.1.0
config: test/e2e-v2/cases/profiling/ebpf/continuous/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.1.0
- name: Continuous Profiling OpenSearch 1.3.6
config: test/e2e-v2/cases/profiling/ebpf/continuous/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.3.6
- name: Continuous Profiling OpenSearch 2.4.0
config: test/e2e-v2/cases/profiling/ebpf/continuous/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.4.0
- 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.15.0
config: test/e2e-v2/cases/istio/metrics/e2e.yaml
env: |
ISTIO_VERSION=1.15.0
KUBERNETES_VERSION=25
- name: Istio Metrics Service 1.16.0
config: test/e2e-v2/cases/istio/metrics/e2e.yaml
env: |
ISTIO_VERSION=1.16.0
KUBERNETES_VERSION=25
- name: Istio Metrics Service 1.17.0
config: test/e2e-v2/cases/istio/metrics/e2e.yaml
env: |
ISTIO_VERSION=1.17.0
KUBERNETES_VERSION=25
- name: Istio Metrics Service 1.18.0
config: test/e2e-v2/cases/istio/metrics/e2e.yaml
env: |
ISTIO_VERSION=1.18.0
KUBERNETES_VERSION=25
- name: Rover with Istio Process 1.15.0
config: test/e2e-v2/cases/rover/process/istio/e2e.yaml
env: ISTIO_VERSION=1.15.0
runs-on: ubuntu-20.04
- 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: VM Telegraf
config: test/e2e-v2/cases/vm/telegraf/e2e.yaml
- name: So11y
config: test/e2e-v2/cases/so11y/e2e.yaml
- name: MySQL Prometheus and slowsql
config: test/e2e-v2/cases/mysql/mysql-slowsql/e2e.yaml
- name: PostgreSQL Prometheus
config: test/e2e-v2/cases/postgresql/postgres-exporter/e2e.yaml
- name: MariaDB Prometheus and slowsql
config: test/e2e-v2/cases/mariadb/mariadb-slowsql/e2e.yaml
- name: Zipkin ES
config: test/e2e-v2/cases/zipkin/es/e2e.yaml
- name: Zipkin ES Sharding
config: test/e2e-v2/cases/zipkin/es/es-sharding/e2e.yaml
- name: Zipkin MySQL
config: test/e2e-v2/cases/zipkin/mysql/e2e.yaml
- name: Zipkin Opensearch
config: test/e2e-v2/cases/zipkin/opensearch/e2e.yaml
- name: Zipkin H2
config: test/e2e-v2/cases/zipkin/h2/e2e.yaml
- name: Zipkin Postgres
config: test/e2e-v2/cases/zipkin/postgres/e2e.yaml
- name: Zipkin Kafka
config: test/e2e-v2/cases/zipkin/kafka/e2e.yaml
- name: Zipkin BanyanDB
config: test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
- name: Nginx
config: test/e2e-v2/cases/nginx/e2e.yaml
- name: APISIX metrics
config: test/e2e-v2/cases/apisix/otel-collector/e2e.yaml
- name: Exporter Kafka
config: test/e2e-v2/cases/exporter/kafka/e2e.yaml
- name: Virtual MQ
config: test/e2e-v2/cases/virtual-mq/e2e.yaml
- name: AWS Cloud EKS
config: test/e2e-v2/cases/aws/eks/e2e.yaml
- name: Windows
config: test/e2e-v2/cases/win/e2e.yaml
- name: AWS Cloud S3
config: test/e2e-v2/cases/aws/s3/e2e.yaml
- name: AWS Cloud DynamoDB
config: test/e2e-v2/cases/aws/dynamodb/e2e.yaml
- name: PromQL Service
config: test/e2e-v2/cases/promql/e2e.yaml
- name: LogQL Service
config: test/e2e-v2/cases/logql/e2e.yaml
- name: AWS API Gateway
config: test/e2e-v2/cases/aws/api-gateway/e2e.yaml
- name: Redis Prometheus and Log Collecting
config: test/e2e-v2/cases/redis/redis-exporter/e2e.yaml
- name: Elasticsearch
config: test/e2e-v2/cases/elasticsearch/e2e.yaml
- name: MongoDB
config: test/e2e-v2/cases/mongodb/e2e.yaml
- name: RabbitMQ
config: test/e2e-v2/cases/rabbitmq/e2e.yaml
- name: Kafka
config: test/e2e-v2/cases/kafka/kafka-monitoring/e2e.yaml
- name: MQE Service
config: test/e2e-v2/cases/mqe/e2e.yaml
- name: Pulsar and BookKeeper
config: test/e2e-v2/cases/pulsar/e2e.yaml
- name: UI Menu BanyanDB
config: test/e2e-v2/cases/menu/banyandb/e2e.yaml
- name: UI Menu H2
config: test/e2e-v2/cases/menu/h2/e2e.yaml
- name: UI Menu ES
config: test/e2e-v2/cases/menu/es/e2e.yaml
- name: UI Menu Sharding ES
config: test/e2e-v2/cases/menu/es/es-sharding/e2e.yaml
- name: UI Menu MySQL
config: test/e2e-v2/cases/menu/mysql/e2e.yaml
- name: UI Menu Postgres
config: test/e2e-v2/cases/menu/postgres/e2e.yaml
- name: UI Menu OpenSearch 1.1.0
config: test/e2e-v2/cases/menu/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.1.0
- name: UI Menu OpenSearch 1.3.6
config: test/e2e-v2/cases/menu/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=1.3.6
- name: UI Menu OpenSearch 2.4.0
config: test/e2e-v2/cases/menu/opensearch/e2e.yaml
env: OPENSEARCH_VERSION=2.4.0
- name: OTLP Trace
config: test/e2e-v2/cases/otlp-traces/e2e.yaml
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/download-artifact@v3
name: Download docker images
with:
name: docker-images-11
path: docker-images
- name: Load docker images
run: |
find docker-images -name "*.tar" -exec docker load -i {} \;
find docker-images -name "*.tar" -exec rm {} \;
- name: Login to ghcr
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('test/e2e-v2/java-test-service/**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-
- name: Prepare test services
shell: bash
run: ./mvnw -B -q -f test/e2e-v2/java-test-service/pom.xml clean package
- name: Set env var
run: |
echo "${{ matrix.test.env }}" >> $GITHUB_ENV
- name: ${{ matrix.test.name }}
uses: apache/skywalking-infra-e2e@0a5b398fc9668ccb848b16e6da4f09180955dc3e
with:
e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
- if: ${{ failure() }}
run: |
df -h
du -sh .
docker images
- uses: actions/upload-artifact@v2
if: ${{ failure() }}
name: Upload Logs
with:
name: logs
path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
e2e-test-istio:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: E2E test
needs: [docker]
runs-on: ubuntu-20.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
analyzer: [k8s-mesh, mx-mesh]
versions:
- istio: 1.15.0
kubernetes: 25
- istio: 1.16.0
kubernetes: 25
- istio: 1.17.0
kubernetes: 25
- istio: 1.18.0
kubernetes: 25
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/download-artifact@v3
name: Download docker images
with:
name: docker-images-11
path: docker-images
- name: Load docker images
run: |
find docker-images -name "*.tar" -exec docker load -i {} \;
find docker-images -name "*.tar" -exec rm {} \;
- name: Login to ghcr
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: ${{ matrix.test.name }}
uses: apache/skywalking-infra-e2e@0a5b398fc9668ccb848b16e6da4f09180955dc3e
env:
ISTIO_VERSION: ${{ matrix.versions.istio }}
KUBERNETES_VERSION: ${{ matrix.versions.kubernetes }}
ALS_ANALYZER: ${{ matrix.analyzer }}
with:
e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/istio/als/e2e.yaml
- if: ${{ failure() }}
run: |
df -h
du -sh .
docker images
- uses: actions/upload-artifact@v2
if: ${{ failure() }}
name: Upload Logs
with:
name: logs
path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
e2e-test-java-versions:
if: |
( always() && ! cancelled() ) &&
((github.event_name == 'schedule' && github.repository == 'apache/skywalking') || needs.changes.outputs.oap == 'true')
name: E2E test
needs: [docker]
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
java-version: [11, 17]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/download-artifact@v3
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 {} \;
find docker-images -name "*.tar" -exec rm {} \;
- uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: temurin
- name: Cache maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('test/e2e-v2/java-test-service/**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-
- name: Prepare test services
shell: bash
run: ./mvnw -B -q -f test/e2e-v2/java-test-service/pom.xml clean package
- name: Java version ${{ matrix.java-version }}
uses: apache/skywalking-infra-e2e@0a5b398fc9668ccb848b16e6da4f09180955dc3e
env:
SW_AGENT_JDK_VERSION: ${{ matrix.java-version }}
with:
e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/simple/jdk/e2e.yaml
required:
if: always()
name: Required
needs:
- dependency-license
- unit-test
- integration-test
- slow-integration-test
- e2e-test
- e2e-test-istio
- e2e-test-java-versions
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Merge Requirement
# check changes, sanity, dependency license, unit, integration, e2e, e2e-istio and e2e-java-versions,
# if all of them are working as expected then naturally exits else return error code
run: |
execute=${{ needs.changes.outputs.oap }}
sanityResults=${{ needs.dependency-license.result }}
[[ ${sanityResults} == 'success' ]] || [[ ${execute} != 'true' && ${sanityResults} == 'skipped' ]] || exit -1;
depLicenseResults=${{ needs.dependency-license.result }}
unitResults=${{ needs.unit-test.result }};
integrationResults=${{ needs.integration-test.result }};
timeConsumingITResults=${{ needs.slow-integration-test.result }};
e2eResults=${{ needs.e2e-test.result }};
e2eIstioResults=${{ needs.e2e-test-istio.result }};
e2eJavaVersionResults=${{ needs.e2e-test-java-versions.result }};
[[ ${depLicenseResults} == 'success' ]] || [[ ${execute} != 'true' && ${depLicenseResults} == 'skipped' ]] || exit -2;
[[ ${unitResults} == 'success' ]] || [[ ${execute} != 'true' && ${unitResults} == 'skipped' ]] || exit -3;
[[ ${integrationResults} == 'success' ]] || [[ ${execute} != 'true' && ${integrationResults} == 'skipped' ]] || exit -4;
[[ ${e2eResults} == 'success' ]] || [[ ${execute} != 'true' && ${e2eResults} == 'skipped' ]] || exit -5;
[[ ${e2eIstioResults} == 'success' ]] || [[ ${execute} != 'true' && ${e2eIstioResults} == 'skipped' ]] || exit -6;
[[ ${e2eJavaVersionResults} == 'success' ]] || [[ ${execute} != 'true' && ${e2eJavaVersionResults} == 'skipped' ]] || exit -7;
[[ ${timeConsumingITResults} == 'success' ]] || [[ ${execute} != 'true' && ${timeConsumingITResults} == 'skipped' ]] || exit -8;
exit 0;