Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 14 commits into from
Oct 5, 2024
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
Loading