This is an automated email from the ASF dual-hosted git repository.
jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 15641b6aea [ISSUE #8733] Add a performance benchmark testing pipeline
(#8734)
15641b6aea is described below
commit 15641b6aeaa0fcaa55ea25aa0bb296d8d26cc750
Author: 小陈 <[email protected]>
AuthorDate: Sat Oct 5 10:07:00 2024 +0800
[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
---
.github/workflows/push-ci.yml | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/push-ci.yml b/.github/workflows/push-ci.yml
index b23d69788c..cc2a053eba 100644
--- a/.github/workflows/push-ci.yml
+++ b/.github/workflows/push-ci.yml
@@ -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: