Weekly medic benchmark #25
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Weekly medic benchmark | |
on: | |
workflow_dispatch: { } | |
schedule: | |
# Runs at 1am every monday https://crontab.guru/#0_1_*_*_1 | |
- cron: 0 1 * * 1 | |
jobs: | |
delete-old-benchmarks: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: 'read' | |
id-token: 'write' | |
steps: | |
- uses: google-github-actions/auth@v1 | |
with: | |
workload_identity_provider: 'projects/628707732411/locations/global/workloadIdentityPools/zeebe-gh-actions/providers/gha-provider' | |
service_account: '[email protected]' | |
- uses: google-github-actions/[email protected] | |
with: | |
cluster_name: zeebe-cluster | |
location: europe-west1-b | |
- name: Collect benchmark data | |
id: data | |
run: | | |
# Get all namespaces, filter for medic benchmarks and select the oldest one | |
echo "normal=$(kubectl get ns -o name | grep -E namespace/medic-y-[0-9]+-cw-[0-9]+-[a-z0-9]+-benchmark$ | sort -V | head -n1)" >> $GITHUB_OUTPUT | |
- name: Delete benchmarks | |
run: | | |
kubectl delete ${{ steps.data.outputs.normal }} | |
kubectl delete ${{ steps.data.outputs.normal }}-mixed | |
kubectl delete ${{ steps.data.outputs.normal }}-latency | |
benchmark-data: | |
name: Collect benchmark data | |
runs-on: ubuntu-latest | |
outputs: | |
full-ref: ${{ steps.data.outputs.full-ref }} | |
benchmark: ${{ steps.data.outputs.benchmark }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Collect benchmark data | |
id: data | |
run: | | |
echo "full-ref"=$(git rev-parse HEAD) >> $GITHUB_OUTPUT | |
echo "benchmark=medic-y-$(date +%Y)-cw-$(date +%V)-$(git rev-parse --short HEAD)-benchmark" >> $GITHUB_OUTPUT | |
setup-normal-benchmark: | |
name: Normal Benchmark | |
needs: | |
- benchmark-data | |
- delete-old-benchmarks | |
uses: ./.github/workflows/benchmark.yml | |
secrets: inherit | |
with: | |
name: ${{ needs.benchmark-data.outputs.benchmark }} | |
cluster: zeebe-cluster | |
cluster-region: europe-west1-b | |
ref: ${{ needs.benchmark-data.outputs.full-ref }} | |
publish: "slack" | |
setup-mixed-benchmark: | |
name: Mixed Benchmark | |
uses: ./.github/workflows/benchmark.yml | |
secrets: inherit | |
needs: | |
- benchmark-data | |
- delete-old-benchmarks | |
with: | |
name: ${{ needs.benchmark-data.outputs.benchmark }}-mixed | |
cluster: zeebe-cluster | |
cluster-region: europe-west1-b | |
ref: ${{ needs.benchmark-data.outputs.full-ref }} | |
measure: false | |
benchmark-load: > | |
--set starter.rate=25 | |
--set timer.replicas=1 | |
--set timer.rate=25 | |
--set publisher.replicas=1 | |
--set publisher.rate=25 | |
setup-latency-benchmark: | |
name: Latency Benchmark | |
uses: ./.github/workflows/benchmark.yml | |
secrets: inherit | |
needs: | |
- benchmark-data | |
- delete-old-benchmarks | |
with: | |
name: ${{ needs.benchmark-data.outputs.benchmark }}-latency | |
cluster: zeebe-cluster | |
cluster-region: europe-west1-b | |
ref: ${{ needs.benchmark-data.outputs.full-ref }} | |
measure: false | |
benchmark-load: > | |
--set starter.rate=1 | |
--set worker.replicas=1 |