Skip to content

main performance tests #208

main performance tests

main performance tests #208

# This workflow is responsible for all kinds of performance tests
name: main performance tests
on:
schedule:
- cron: '0 5 * * *' # Run every day at 05:00 AM
jobs:
istio-performance-test:
name: Istio performance test
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: ./tests/integration/scripts/gardener-kubeconfig.sh
shell: bash
env:
GARDENER_TOKEN: ${{ secrets.GARDENER_TOKEN }}
- uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
- run: |
sha=$(./scripts/get_latest_build_sha.sh)
make IMG="europe-docker.pkg.dev/kyma-project/prod/istio-manager:$sha" gardener-perf-test
shell: bash
env:
GARDENER_KUBECONFIG: "/home/runner/work/istio/istio/gardener_kubeconfig.yaml"
GARDENER_PROJECT_NAME: "goats"
GARDENER_PROVIDER_SECRET_NAME: "goat"
GARDENER_PROVIDER: "gcp"
GARDENER_REGION: "europe-west3"
GARDENER_CLUSTER_VERSION: "1.27"
MACHINE_TYPE: "n2-standard-4"
DISK_SIZE: 50
DISK_TYPE: "pd-standard"
SCALER_MAX: 20
SCALER_MIN: 3
- uses: actions/upload-artifact@v4
if: always()
name: Export no sidecar summary
with:
name: no-sidecar
path: tests/performance/summary-no-sidecar.html
- uses: actions/upload-artifact@v4
if: always()
name: Export sidecar summary
with:
name: sidecar
path: tests/performance/summary-sidecar.html
- name: Check threshold breaches on test without sidecar
if: always()
shell: bash
run: if [[ $(cat tests/performance/summary-no-sidecar.html | grep "<h4>Breached Thresholds</h4>" -A1 | grep -oe ">\d<" | sed 's/[<>]//g') -ne 0 ]]; then exit 1; fi
- name: Check threshold breaches on test with sidecar
if: always()
shell: bash
run: if [[ $(cat tests/performance/summary-sidecar.html | grep "<h4>Breached Thresholds</h4>" -A1 | grep -oe ">\d<" | sed 's/[<>]//g') -ne 0 ]]; then exit 1; fi
slack_failed_notification:
name: Slack Notification
runs-on: ubuntu-latest
if: ${{ failure() }}
needs: [istio-performance-test]
steps:
- uses: actions/checkout@v4
- name: Notify
uses: ./.github/actions/slack-notification-failed-workflow
with:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}