未验证 提交 8e6a527f 编写于 作者: K kezhenxu94 提交者: GitHub

Add Java versions 9~14 to E2E tests (#4674)

上级 28530cd7
......@@ -49,7 +49,7 @@ jobs:
git submodule sync --recursive
git -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Compile and Build
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker.oap
- name: Copy dist package
run: cp -R dist test/e2e/
- name: Cluster with ${{ matrix.coordinator }} and ${{ matrix.storage }}
......
......@@ -39,6 +39,7 @@ jobs:
env:
SW_SIMPLE_CASE: jdk
SW_AGENT_JDK_VERSION: ${{ matrix.jdk }}
SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:alpine
steps:
- uses: actions/checkout@v2
- name: Checkout Submodules
......@@ -46,6 +47,10 @@ jobs:
run: |
git submodule sync --recursive
git -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set Up Java
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}
- name: Build Docker Image
run: make docker
- name: Copy dist package
......
......@@ -47,7 +47,7 @@ jobs:
git submodule sync --recursive
git -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Compile and Build
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker.oap
- name: Copy dist package
run: cp -R dist test/e2e/
- name: Profiling ${{ matrix.storage }}
......
......@@ -47,7 +47,7 @@ jobs:
git submodule sync --recursive
git -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Compile and Build
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker.oap
- name: Copy dist package
run: cp -R dist test/e2e/
- name: Storage ${{ matrix.storage }}
......
......@@ -47,7 +47,7 @@ jobs:
git submodule sync --recursive
git -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Compile and Build
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker
run: make docker && ES_VERSION=es7 TAG=latest-es7 make docker.oap
- name: Copy dist package
run: cp -R dist test/e2e/
- name: TTL of storage ${{ matrix.storage }}
......
......@@ -58,18 +58,22 @@ DOCKER_TARGETS:=docker.oap docker.ui
docker.all: $(DOCKER_TARGETS)
ifeq ($(ES_VERSION),es7)
docker.oap: $(SW_OUT)/apache-skywalking-apm-bin-es7.tar.gz
docker.oap: $(SW_ROOT)/docker/oap-es7/Dockerfile.oap
docker.oap: $(SW_ROOT)/docker/oap-es7/docker-entrypoint.sh
docker.oap: $(SW_ROOT)/docker/oap-es7/log4j2.xml
$(DOCKER_RULE)
DIST_NAME := apache-skywalking-apm-bin-es7
else
docker.oap: $(SW_OUT)/apache-skywalking-apm-bin.tar.gz
DIST_NAME := apache-skywalking-apm-bin
endif
ifneq ($(SW_OAP_JAVA_VERSION),)
BUILD_ARGS := $(BUILD_ARGS) --build-arg JAVA_VERSION=$(SW_OAP_JAVA_VERSION)
endif
BUILD_ARGS := $(BUILD_ARGS) --build-arg DIST_NAME=$(DIST_NAME)
docker.oap: $(SW_OUT)/$(DIST_NAME).tar.gz
docker.oap: $(SW_ROOT)/docker/oap/Dockerfile.oap
docker.oap: $(SW_ROOT)/docker/oap/docker-entrypoint.sh
docker.oap: $(SW_ROOT)/docker/oap/log4j2.xml
$(DOCKER_RULE)
endif
docker.ui: $(SW_OUT)/apache-skywalking-apm-bin.tar.gz
docker.ui: $(SW_ROOT)/docker/ui/Dockerfile.ui
......
......@@ -34,7 +34,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<finagle.version>6.34.0</finagle.version>
<scala.library.version>2.11.8</scala.library.version>
<scala.library.version>2.11.12</scala.library.version>
</properties>
<dependencies>
......@@ -78,4 +78,4 @@
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
</project>
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM openjdk:8u181-jdk-stretch
ENV DIST_NAME=apache-skywalking-apm-bin-es7 \
JAVA_OPTS=" -Xms256M " \
SW_CLUSTER="standalone" \
SW_STORAGE="h2"
COPY "$DIST_NAME.tar.gz" /
RUN set -ex; \
tar -xzf "$DIST_NAME.tar.gz"; \
rm -rf "$DIST_NAME.tar.gz"; \
rm -rf "$DIST_NAME/config/log4j2.xml"; \
rm -rf "$DIST_NAME/bin"; rm -rf "$DIST_NAME/webapp"; rm -rf "$DIST_NAME/agent"; \
mv "$DIST_NAME" skywalking;
WORKDIR skywalking
COPY log4j2.xml config/
COPY docker-entrypoint.sh .
RUN mkdir ext-config; \
mkdir ext-libs;
EXPOSE 12800 11800 1234
ENTRYPOINT ["bash", "docker-entrypoint.sh"]
\ No newline at end of file
# 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.
#!/bin/bash
set -e
echo "[Entrypoint] Apache SkyWalking Docker Image"
if [[ "$SW_TELEMETRY" = "so11y" ]]; then
export SW_RECEIVER_SO11Y=default
echo "Set SW_RECEIVER_SO11Y to ${SW_RECEIVER_SO11Y}"
fi
EXT_LIB_DIR=/skywalking/ext-libs
EXT_CONFIG_DIR=/skywalking/ext-config
# Override configuration files
cp -vfR ${EXT_CONFIG_DIR}/ config/
CLASSPATH="config:$CLASSPATH"
for i in oap-libs/*.jar
do
CLASSPATH="$i:$CLASSPATH"
done
for i in ${EXT_LIB_DIR}/*.jar
do
CLASSPATH="$i:$CLASSPATH"
done
set -ex
exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap \
${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@"
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~
-->
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
</Console>
</Appenders>
<Loggers>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="org.apache.zookeeper" level="INFO"/>
<logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
<logger name="io.grpc.netty" level="INFO"/>
<logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
......@@ -14,13 +14,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM openjdk:8u181-jdk-stretch
ARG JAVA_VERSION=8
ENV DIST_NAME=apache-skywalking-apm-bin \
JAVA_OPTS=" -Xms256M " \
FROM adoptopenjdk/openjdk$JAVA_VERSION:alpine
ENV JAVA_OPTS=" -Xms256M " \
SW_CLUSTER="standalone" \
SW_STORAGE="h2"
ARG DIST_NAME
COPY "$DIST_NAME.tar.gz" /
RUN set -ex; \
......@@ -39,4 +42,4 @@ RUN mkdir ext-config; \
EXPOSE 12800 11800 1234
ENTRYPOINT ["bash", "docker-entrypoint.sh"]
\ No newline at end of file
ENTRYPOINT ["sh", "docker-entrypoint.sh"]
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
......@@ -14,13 +15,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#!/bin/bash
set -e
echo "[Entrypoint] Apache SkyWalking Docker Image"
if [[ "$SW_TELEMETRY" = "so11y" ]]; then
if [ "$SW_TELEMETRY" = "so11y" ]; then
export SW_RECEIVER_SO11Y=default
echo "Set SW_RECEIVER_SO11Y to ${SW_RECEIVER_SO11Y}"
fi
......@@ -36,11 +35,15 @@ for i in oap-libs/*.jar
do
CLASSPATH="$i:$CLASSPATH"
done
for i in ${EXT_LIB_DIR}/*.jar
for i in "${EXT_LIB_DIR}"/*.jar
do
CLASSPATH="$i:$CLASSPATH"
done
if java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -version; then
JAVA_OPTS="${JAVA_OPTS} -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
fi
set -ex
exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap \
${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@"
exec java ${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@"
......@@ -219,6 +219,7 @@
<gmaven-plugin.version>1.5</gmaven-plugin.version>
<cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
<checkstyle.fails.on.error>true</checkstyle.fails.on.error>
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
</properties>
<dependencies>
......@@ -255,6 +256,12 @@
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>${javax.annotation-api.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencyManagement>
......
......@@ -209,7 +209,9 @@ public final class SkyWalkingAnnotations {
compose.withPull(true)
.withLocalCompose(true)
.withTailChildContainers(true)
.withRemoveImages(DockerComposeContainer.RemoveImages.ALL);
.withRemoveImages(
IS_CI ? DockerComposeContainer.RemoveImages.ALL : DockerComposeContainer.RemoveImages.LOCAL
);
if (IS_CI) {
initLoggers(files, compose);
......
......@@ -35,7 +35,7 @@ services:
JAVA_OPTS: >-
-javaagent:/jacoco/jacocoagent.jar=classdumpdir=/jacoco/classes/oap,destfile=/jacoco/oap.exec,includes=org.apache.skywalking.*,excludes=org.apache.skywalking.oap.query.*:org.apache.skywalking.oap.server.core.query.*
healthcheck:
test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"]
test: ["CMD", "sh", "-c", "nc -zn 127.0.0.1 11800"]
interval: 5s
timeout: 60s
retries: 120
......@@ -59,7 +59,7 @@ services:
JAVA_OPTS: >-
-javaagent:/jacoco/jacocoagent.jar=classdumpdir=/jacoco/classes/oap,destfile=/jacoco/oap.exec,includes=org.apache.skywalking.*,excludes=org.apache.skywalking.oap.query.*:org.apache.skywalking.oap.server.core.query.*
healthcheck:
test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"]
test: ["CMD", "sh", "-c", "nc -zn 127.0.0.1 11800"]
interval: 5s
timeout: 60s
retries: 120
......
......@@ -41,7 +41,7 @@ services:
SW_STORAGE: mysql
JAVA_OPTS: >-
-javaagent:/jacoco/jacocoagent.jar=classdumpdir=/jacoco/classes/oap1,destfile=/jacoco/oap1.exec,includes=org.apache.skywalking.*,excludes=org.apache.skywalking.oap.query.*:org.apache.skywalking.oap.server.core.query.*
entrypoint: ['bash', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
depends_on:
zk:
condition: service_healthy
......@@ -57,7 +57,7 @@ services:
SW_STORAGE: mysql
JAVA_OPTS: >-
-javaagent:/jacoco/jacocoagent.jar=classdumpdir=/jacoco/classes/oap2,destfile=/jacoco/oap2.exec,includes=org.apache.skywalking.*,excludes=org.apache.skywalking.oap.query.*:org.apache.skywalking.oap.server.core.query.*
entrypoint: ['bash', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
depends_on:
zk:
condition: service_healthy
......
......@@ -12,16 +12,16 @@
# 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.
#!/usr/bin/env bash
set -ex
apk add curl
SW_HOME=/skywalking
MYSQL_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar"
MYSQL_DRIVER="mysql-connector-java-8.0.13.jar"
curl -L -o "${SW_HOME}/oap-libs/${MYSQL_DRIVER}" ${MYSQL_URL}
if [[ $? -ne 0 ]]; then
if ! curl -Lo "${SW_HOME}/oap-libs/${MYSQL_DRIVER}" ${MYSQL_URL}; then
echo "Fail to download ${MYSQL_DRIVER}."
exit 1
fi
......@@ -41,7 +41,7 @@ services:
depends_on:
mysql:
condition: service_healthy
entrypoint: ['bash', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
networks:
e2e:
......@@ -41,7 +41,7 @@ services:
depends_on:
mysql:
condition: service_healthy
entrypoint: ['bash', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
networks:
e2e:
# 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.
#!/usr/bin/env bash
set -ex
SW_HOME=/skywalking
MYSQL_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar"
MYSQL_DRIVER="mysql-connector-java-8.0.13.jar"
curl -L -o "${SW_HOME}/oap-libs/${MYSQL_DRIVER}" ${MYSQL_URL}
if [[ $? -ne 0 ]]; then
echo "Fail to download ${MYSQL_DRIVER}."
exit 1
fi
......@@ -257,12 +257,14 @@ public class ProfileE2E extends SkyWalkingTestAdapter {
"/skywalking/tools/profile-exporter/profile_exporter.sh --taskid=%s --traceid=%s /tmp",
taskId, traceId
);
final Container.ExecResult exportResult = oapContainer.execInContainer("/bin/bash", "-c", exportShell);
final Container.ExecResult exportResult = oapContainer.execInContainer("/bin/sh", "-c", exportShell);
LOGGER.info("exported result: {}", exportResult);
assertThat(exportResult.getExitCode()).isEqualTo(0);
final String lsExportedFileShell = String.format("ls /tmp/%s.tar.gz", traceId);
final Container.ExecResult checkExportedFileResult = oapContainer.execInContainer("/bin/bash", "-c", lsExportedFileShell);
final Container.ExecResult checkExportedFileResult = oapContainer.execInContainer("/bin/sh", "-c", lsExportedFileShell);
LOGGER.info("check exported file result: {}", checkExportedFileResult);
......
......@@ -28,6 +28,11 @@ ls -alh "${JACOCO_HOME}"
for exec_data in "${JACOCO_HOME}"/*.exec; do
exec_data=${exec_data/*\//}
exec_data=${exec_data/.exec/}
sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/org/apache/skywalking/oap/server/core/query/entity || true
sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/org/apache/skywalking/testcase || true
sudo rm -rf "${JACOCO_HOME}"/classes/"${exec_data}"/org/apache/skywalking/e2e || true
java -jar "${JACOCO_HOME}"/jacococli.jar report \
--classfiles "${JACOCO_HOME}"/classes/"$exec_data" \
--xml=/tmp/report-"$exec_data".xml \
......
#!/usr/bin/env bash
#!/usr/bin/env sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册