[ISSUE #8733] Add a performance benchmark testing pipeline (#8734)

* Test the performance benchmark pipeline execution status (#8759)

* Add a benchmark workflow to current ci workflows

* Fix bug: Use the correct branch for image generation

* Update config

* Update config

* Replace controller image to fix the issue of the controller failing to start

* Trigger ci

* Trigger ci

* Update test tool

* Update test tool

* Extend benchmark based on the original workflow

* Test the performance benchmark pipeline execution status

* Update test tool

* Add a benchmark workflow to current ci workflows

* Fix bug: Use the correct branch for image generation

* Update config

* Update config

* Replace controller image to fix the issue of the controller failing to start

* Trigger ci

* Trigger ci

* Update test tool

* Update test tool

* Extend benchmark based on the original workflow

* Set parameter thresholds for the performance benchmark
This commit is contained in:
小陈
2024-10-05 10:07:00 +08:00
committed by RongtongJin
parent 203efeb8fd
commit 2a686fd9e1
+35 -2
View File
@@ -78,7 +78,6 @@ jobs:
name: versionlist
path: rocketmq-docker/image-build-ci/versionlist/*
list-version:
if: >
github.repository == 'apache/rocketmq' &&
@@ -101,6 +100,7 @@ jobs:
a=(`ls versionlist`)
printf '%s\n' "${a[@]}" | jq -R . | jq -s .
echo version-json=`printf '%s\n' "${a[@]}" | jq -R . | jq -s .` >> $GITHUB_OUTPUT
deploy:
if: ${{ success() }}
name: Deploy RocketMQ
@@ -110,7 +110,9 @@ jobs:
strategy:
matrix:
version: ${{ fromJSON(needs.list-version.outputs.version-json) }}
test-type: [e2e, benchmark]
steps:
- run: echo "Running ${{ matrix.test-type }}... "
- uses: apache/rocketmq-test-tool@7d84d276ad7755b1dc5cf9657a7a9bff6ae6d288
name: Deploy rocketmq
with:
@@ -134,6 +136,7 @@ jobs:
image:
repository: ${{env.DOCKER_REPO}}
tag: ${{ matrix.version }}
test-e2e-grpc-java:
if: ${{ success() }}
name: Test E2E grpc java
@@ -247,16 +250,46 @@ jobs:
name: test-e2e-remoting-java-log.txt
path: testlog.txt
benchmark-test:
if: ${{ success() }}
runs-on: ubuntu-latest
name: Performance benchmark test
needs: [ list-version, deploy ]
timeout-minutes: 60
steps:
- uses: apache/rocketmq-test-tool/benchmark-runner@ce372e5f3906ca1891e4918b05be14608eae608e
name: Performance benchmark
with:
action: "performance-benchmark"
ask-config: "${{ secrets.ASK_CONFIG_VIRGINA }}"
job-id: 1
# The time to run the test, 15 minutes
test-time: "900"
# Some thresholds set in advance
min-send-tps-threshold: "12000"
max-rt-ms-threshold: "500"
avg-rt-ms-threshold: "10"
max-2c-rt-ms-threshold: "100"
avg-2c-rt-ms-threshold: "10"
- name: Upload test report
if: always()
uses: actions/upload-artifact@v4
with:
name: benchmark-report
path: benchmark/
clean:
if: always()
name: Clean
needs: [list-version, test-e2e-grpc-java, test-e2e-golang, test-e2e-remoting-java]
needs: [list-version, test-e2e-grpc-java, test-e2e-golang, test-e2e-remoting-java, benchmark-test]
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
version: ${{ fromJSON(needs.list-version.outputs.version-json) }}
test-type: [ e2e, benchmark ]
steps:
- run: echo "Cleaning ${{ matrix.test-type }}... "
- uses: apache/rocketmq-test-tool@7d84d276ad7755b1dc5cf9657a7a9bff6ae6d288
name: clean
with: