Skip to content

Commit

Permalink
[ISSUE apache#8733] Add a performance benchmark testing pipeline (apa…
Browse files Browse the repository at this point in the history
…che#8734)

* Test the performance benchmark pipeline execution status (apache#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
  • Loading branch information
chi3316 authored Oct 5, 2024
1 parent 551c8c3 commit 15641b6
Showing 1 changed file with 35 additions and 2 deletions.
37 changes: 35 additions & 2 deletions .github/workflows/push-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ jobs:
name: versionlist
path: rocketmq-docker/image-build-ci/versionlist/*


list-version:
if: >
github.repository == 'apache/rocketmq' &&
Expand All @@ -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
Expand All @@ -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:
Expand All @@ -134,6 +136,7 @@ jobs:
image:
repository: ${{env.DOCKER_REPO}}
tag: ${{ matrix.version }}
test-e2e-grpc-java:
if: ${{ success() }}
name: Test E2E grpc java
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 15641b6

Please sign in to comment.