Skip to content

Commit

Permalink
🧪 Add SLO workflows for testing and reporting; remove obsolete test i…
Browse files Browse the repository at this point in the history
…nit and report workflows
  • Loading branch information
polRk committed Nov 25, 2024
1 parent 63d9e9a commit d8efd52
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 57 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/slo-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: SLO Report

on:
workflow_run:
workflows: ["SLO"]
types:
- completed

jobs:
ydb-slo-action-report:
runs-on: ubuntu-latest
name: Publish YDB SLO Report
permissions:
contents: read
pull-requests: write
if: github.event.workflow_run.conclusion == 'success'
steps:
- name: Publish YDB SLO Report
uses: ydb-platform/ydb-slo-action/report@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_run_id: ${{ github.event.workflow_run.id }}
83 changes: 83 additions & 0 deletions .github/workflows/slo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: SLO

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
inputs:
github_pull_request_number:
required: true
slo_workload_duration_seconds:
default: "600"
required: false
slo_workload_read_max_rps:
default: "1000"
required: false
slo_workload_write_max_rps:
default: "100"
required: false

jobs:
ydb-slo-action:
if: (!contains(github.event.pull_request.labels.*.name, 'no slo'))

name: Run YDB SLO Tests
runs-on: ubuntu-latest

strategy:
matrix:
workload:
- sync-table
- sync-query

concurrency:
group: slo-${{ github.ref }}-${{ matrix.workload }}
cancel-in-progress: true

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize YDB SLO
uses: ydb-platform/ydb-slo-action/init@main
with:
github_pull_request_number: ${{ github.event.inputs.github_pull_request_number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
workload_name: ${{ matrix.workload }}
ydb_database_node_count: 5

- name: Prepare SLO Database
run: |
echo "Preparing SLO database..."
- name: Run SLO Tests
run: |
./workload grpc://localhost:2135 /Root/testdb \
--prom-pgw localhost:9091 \
--report-period 250 \
--time ${{inputs.slo_workload_duration_seconds || 600}} \
--read-rps ${{inputs.slo_workload_read_max_rps || 1000}} \
--write-rps ${{inputs.slo_workload_write_max_rps || 100}} \
--read-timeout 1000 \
--write-timeout 1000
- if: always()
name: Cleanup SLO Database
run: |
echo "Cleaning up SLO database..."
- if: always()
name: Store ydb chaos testing logs
run: |
docker logs ydb-chaos > chaos-ydb.log
- if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.workload }}-chaos-ydb.log
path: ./chaos-ydb.log
retention-days: 1
35 changes: 0 additions & 35 deletions .github/workflows/ydb-slo-action-test-init.yml

This file was deleted.

22 changes: 0 additions & 22 deletions .github/workflows/ydb-slo-action-test-report.yml

This file was deleted.

0 comments on commit d8efd52

Please sign in to comment.