Skip to content

Commit ade669e

Browse files
author
Liudmila Molkova
authored
[SB/EH] Fix stress CI runs (Azure#35804)
* fix ci runs * minimize dockerfile and use fat jar
1 parent 81bac18 commit ade669e

File tree

10 files changed

+79
-68
lines changed

10 files changed

+79
-68
lines changed

.vscode/cspell.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@
144144
"sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-jedis/**",
145145
"sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/**",
146146
"sdk/eventhubs/azure-messaging-eventhubs/**",
147+
"sdk/eventhubs/azure-messaging-eventhubs-stress/Dockerfile",
147148
"sdk/eventgrid/azure-messaging-eventgrid/**",
148149
"sdk/cosmos/azure-cosmos/**",
149150
"sdk/identity/azure-identity/**",
@@ -176,6 +177,7 @@
176177
"sdk/purview/azure-analytics-purview-catalog/**",
177178
"sdk/servicebus/build/**",
178179
"sdk/servicebus/azure-messaging-servicebus-stress/workbooks/**",
180+
"sdk/servicebus/azure-messaging-servicebus-stress/Dockerfile",
179181
"sdk/search/azure-search-documents/**",
180182
"sdk/storage/azure-storage-internal-avro/**",
181183
"sdk/storage/azure-storage-queue/**",
Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
1-
FROM mcr.microsoft.com/openjdk/jdk:11-mariner as builder
2-
WORKDIR application
3-
ARG JAR_FILE=target/*.jar
4-
COPY ${JAR_FILE} application.jar
5-
RUN java -Djarmode=layertools -jar application.jar extract
1+
FROM maven:3.8.6-openjdk-11 as builder
2+
3+
RUN mkdir /stress-eh
4+
WORKDIR /stress-eh
5+
6+
ADD ./sdk/tools /stress-eh/sdk/tools
7+
ADD ./sdk/parents /stress-eh/sdk/parents
8+
ADD ./sdk/core /stress-eh/sdk/core
9+
ADD ./sdk/eventhubs /stress-eh/sdk/eventhubs
10+
ADD ./eng /stress-eh/eng
11+
12+
RUN --mount=type=cache,target=/root/.m2 \
13+
mvn -f /stress-eh/eng/code-quality-reports/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
14+
mvn -f /stress-eh/sdk/tools/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
15+
mvn -f /stress-eh/sdk/core/azure-core/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
16+
mvn -f /stress-eh/sdk/core/azure-core-test/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
17+
mvn -f /stress-eh/sdk/core/azure-core-amqp/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
18+
mvn -f /stress-eh/sdk/core/azure-core-http-netty/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
19+
mvn -f /stress-eh/sdk/eventhubs/azure-messaging-eventhubs/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
20+
mvn -f /stress-eh/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
21+
mvn -f /stress-eh/sdk/eventhubs/azure-messaging-eventhubs-stress/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests
622

723
FROM mcr.microsoft.com/openjdk/jdk:11-mariner
8-
WORKDIR application
9-
COPY --from=builder application/dependencies/ ./
10-
COPY --from=builder application/spring-boot-loader/ ./
11-
COPY --from=builder application/snapshot-dependencies/ ./
12-
COPY --from=builder application/application/ ./
13-
ARG AGENT_URL=https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.4.1/applicationinsights-agent-3.4.1.jar
24+
25+
WORKDIR /app
26+
COPY --from=builder /stress-eh/sdk/eventhubs/azure-messaging-eventhubs-stress/target .
27+
28+
ARG AGENT_URL=https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.4.13/applicationinsights-agent-3.4.13.jar
1429
ADD ${AGENT_URL} ./BOOT-INF/classes/
15-
ENTRYPOINT ["java","org.springframework.boot.loader.JarLauncher", \
16-
"-javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.1.jar", \
30+
31+
ENTRYPOINT ["java", "-javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar", \
32+
"-jar", "/app/azure-messaging-eventhubs-stress/target/azure-messaging-eventhubs-stress-1.0.0-beta.1.jar", \
1733
"--TEST_CLASS=EventSender"]
1834

sdk/eventhubs/azure-messaging-eventhubs-stress/README.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,10 @@ To know how to develop a stress test project, you should first go through the [A
2020

2121
### Deploy Stress Test
2222

23-
Build out the jar package:
23+
Cd into `azure-sdk-for-java` root folder and run command to deploy the package to cluster
2424

2525
```shell
26-
cd <current project path>
27-
mvn clean install
28-
```
29-
30-
Run command to deploy the package to cluster:
31-
32-
```shell
33-
..\..\..\eng\common\scripts\stress-testing\deploy-stress-tests.ps1 -Login -PushImage
26+
..\..\..\eng\common\scripts\stress-testing\deploy-stress-tests.ps1 -SearchDirectory .\sdk\eventhubs\
3427
```
3528

3629
### Validate Status
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
matrix:
2-
scenarios:
3-
- longrunning
2+
image:
3+
- Dockerfile
4+
scenarios:
5+
send-process:
6+
chaos: "false"
7+
imageBuildDir: ..\..\..\

sdk/eventhubs/azure-messaging-eventhubs-stress/templates/job.yaml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,14 @@ spec:
1717
source $ENV_FILE &&
1818
export CONTAINER_NAME=sender &&
1919
export APPLICATIONINSIGHTS_ROLE_NAME=sender &&
20-
java -javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.1.jar \
21-
"org.springframework.boot.loader.JarLauncher" \
20+
java -javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar \
21+
-jar /app/azure-messaging-eventhubs-stress-1.0.0-beta.1.jar \
2222
--TEST_CLASS=EventSender
2323
{{- include "stress-test-addons.container-env" . | nindent 6 }}
2424
resources:
2525
requests:
2626
memory: "1G"
2727
cpu: "1"
28-
limits:
29-
memory: "2G"
30-
cpu: "2"
3128
- name: receiver
3229
image: {{ .Stress.imageTag }}
3330
imagePullPolicy: Always
@@ -38,15 +35,12 @@ spec:
3835
source $ENV_FILE &&
3936
export CONTAINER_NAME=receiver &&
4037
export APPLICATIONINSIGHTS_ROLE_NAME=receiver &&
41-
java -javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.1.jar \
42-
"org.springframework.boot.loader.JarLauncher" \
38+
java -javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar \
39+
-jar /app/azure-messaging-eventhubs-stress-1.0.0-beta.1.jar \
4340
--TEST_CLASS=EventProcessor
4441
{{- include "stress-test-addons.container-env" . | nindent 6 }}
4542
resources:
4643
requests:
4744
memory: "1G"
4845
cpu: "1"
49-
limits:
50-
memory: "2G"
51-
cpu: "2"
5246
{{- end -}}

sdk/servicebus/azure-messaging-servicebus-stress/Chart.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ version: 0.1.2
55
appVersion: v0.2
66
annotations:
77
stressTest: 'true' # enable auto-discovery of this test via `find-all-stress-packages.ps1`
8-
example: 'true' # enable auto-discovery filtering `find-all-stress-packages.ps1 -filters @{example='true'}`
98
namespace: 'java-sb' # kubernetes namespace that stress test package will be installed
109

1110
dependencies:
1211
- name: stress-test-addons
13-
version: ~0.2.0
12+
version: 0.2.0
1413
repository: https://stresstestcharts.blob.core.windows.net/helm/

sdk/servicebus/azure-messaging-servicebus-stress/Dockerfile

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
1-
FROM mcr.microsoft.com/openjdk/jdk:11-mariner as builder
2-
WORKDIR application
3-
ARG JAR_FILE=target/*.jar
4-
COPY ${JAR_FILE} application.jar
5-
RUN java -Djarmode=layertools -jar application.jar extract
1+
FROM maven:3.8.6-openjdk-11 as builder
2+
3+
RUN mkdir /stress-sb
4+
WORKDIR /stress-sb
5+
6+
ADD ./sdk/tools /stress-eh/sdk/tools
7+
ADD ./sdk/parents /stress-eh/sdk/parents
8+
ADD ./sdk/core /stress-sb/sdk/core
9+
ADD ./sdk/servicebus /stress-sb/sdk/servicebus
10+
ADD ./eng /stress-eh/eng
11+
12+
RUN --mount=type=cache,target=/root/.m2 \
13+
mvn -f /stress-eh/eng/code-quality-reports/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
14+
mvn -f /stress-eh/sdk/tools/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
15+
mvn -f /stress-sb/sdk/core/azure-core/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
16+
mvn -f /stress-sb/sdk/core/azure-core-test/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
17+
mvn -f /stress-sb/sdk/core/azure-core-amqp/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
18+
mvn -f /stress-sb/sdk/core/azure-core-http-netty/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
19+
mvn -f /stress-sb/sdk/servicebus/azure-messaging-servicebus/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests && \
20+
mvn -f /stress-sb/sdk/servicebus/azure-messaging-servicebus-stress/pom.xml clean install -Dcheckstyle.skip -Dgpg.skip -Dmaven.javadoc.skip -Drevapi.skip -Dspotbugs.skip -Djacoco.skip -DskipTests
621

722
FROM mcr.microsoft.com/openjdk/jdk:11-mariner
8-
WORKDIR application
9-
COPY --from=builder application/dependencies/ ./
10-
COPY --from=builder application/spring-boot-loader/ ./
11-
COPY --from=builder application/snapshot-dependencies/ ./
12-
COPY --from=builder application/application/ ./
23+
24+
WORKDIR /app
25+
COPY --from=builder /stress-sb/sdk/servicebus/azure-messaging-servicebus-stress/target .
26+
1327
ARG AGENT_URL=https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.4.13/applicationinsights-agent-3.4.13.jar
1428
ADD ${AGENT_URL} ./BOOT-INF/classes/
15-
ENTRYPOINT ["java","org.springframework.boot.loader.JarLauncher", \
16-
"-javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar", \
29+
ENTRYPOINT ["java", "-javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar", \
30+
"-jar", "/app/azure-messaging-servicebus-stress/target/azure-messaging-servicebus-stress-1.0.0-beta.1.jar", \
1731
"--TEST_CLASS=MessageSender"]
18-

sdk/servicebus/azure-messaging-servicebus-stress/README.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,10 @@ To know how to develop a stress test project, you should first go through the [A
2020

2121
### Deploy Stress Test
2222

23-
Build out the jar package:
23+
Cd into `azure-sdk-for-java` root folder and run command to deploy the package to cluster:
2424

2525
```shell
26-
cd <current project path>
27-
mvn clean install
28-
```
29-
30-
Run command to deploy the package to cluster:
31-
32-
```shell
33-
..\..\..\eng\common\scripts\stress-testing\deploy-stress-tests.ps1
26+
.\eng\common\scripts\stress-testing\deploy-stress-tests.ps1 -SearchDirectory .\sdk\servicebus\
3427
```
3528

3629
### Validate Status
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
matrix:
2+
image:
3+
- Dockerfile
24
scenarios:
3-
longrunning:
5+
send-process:
46
chaos: "true"
7+
imageBuildDir: ..\..\..\

sdk/servicebus/azure-messaging-servicebus-stress/templates/job.yaml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
metadata:
44
labels:
55
testInstance: "{{.Stress.Scenario}}-{{ .Release.Name }}-{{ .Release.Revision }}"
6-
testName: servicebus-stress-test
6+
testName: java-sb-stress
77
chaos: "{{ default false .Stress.chaos }}"
88
spec:
99
containers:
@@ -21,16 +21,13 @@ spec:
2121
export APPLICATIONINSIGHTS_ROLE_INSTANCE=sender-{{ .Stress.BaseName }} &&
2222
export APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL=DEBUG &&
2323
java -javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar \
24-
"org.springframework.boot.loader.JarLauncher" \
24+
-jar /app/azure-messaging-servicebus-stress-1.0.0-beta.1.jar \
2525
--TEST_CLASS=MessageSenderAsync
2626
{{- include "stress-test-addons.container-env" . | nindent 6 }}
2727
resources:
2828
requests:
2929
memory: "1G"
3030
cpu: "1"
31-
limits:
32-
memory: "2G"
33-
cpu: "2"
3431
- name: receiver
3532
image: {{ .Stress.imageTag }}
3633
imagePullPolicy: Always
@@ -46,16 +43,13 @@ spec:
4643
export APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL=DEBUG &&
4744
java -javaagent:BOOT-INF/classes/applicationinsights-agent-3.4.13.jar \
4845
-Dreactor.schedulers.defaultBoundedElasticSize=100 \
49-
"org.springframework.boot.loader.JarLauncher" \
46+
-jar /app/azure-messaging-servicebus-stress-1.0.0-beta.1.jar \
5047
--TEST_CLASS=MessageProcessor
5148
{{- include "stress-test-addons.container-env" . | nindent 6 }}
5249
resources:
5350
requests:
5451
memory: "1G"
5552
cpu: "1"
56-
limits:
57-
memory: "2G"
58-
cpu: "2"
5953
{{- end -}}
6054

6155
{{- include "stress-test-addons.chaos-wrapper.tpl" (list . "stress.network-chaos") -}}

0 commit comments

Comments
 (0)