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: 小陈 <jamiechen....@gmail.com>
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:

Reply via email to