/
githubmirror
/
ydb-java-sdk
Обзор
Документация
Войти
/
githubmirror
/
ydb-java-sdk
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
.github/workflows/slo.yml
143 строки
5 KB
Alexandr Gorshenin
Revert "Use dev version of ydb-slo-action"
17 июл 2026, 13:34
Не верифицирован
17 июл 2026, 13:34
6ab4366
Код
Авторство
О чём код?
name: SLO on: pull_request: types: [opened, reopened, synchronize, labeled] permissions: contents: read pull-requests: write checks: write jobs: ydb-slo-action: # On `labeled` events run only when the `SLO` label itself was just added — # otherwise any unrelated label change would spawn a fresh run that cancels # the in-progress one via `cancel-in-progress`. For the other trigger types # keep gating on the `SLO` label being present. if: >- (github.event.action == 'labeled' && github.event.label.name == 'SLO') || (github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'SLO')) name: Run YDB SLO Tests runs-on: large-runner-java-sdk strategy: fail-fast: false matrix: workload: - name: java-query-kv module: query - name: java-jdbc-kv module: jdbc - name: java-spring-data-jdbc-kv module: spring-data-jdbc - name: java-spring-data-jpa-kv module: spring-data-jpa concurrency: group: slo-${{ github.ref }}-${{ matrix.workload.name }} cancel-in-progress: true steps: - name: Install dependencies run: | set -euxo pipefail YQ_VERSION=v4.48.2 BUILDX_VERSION=0.30.1 COMPOSE_VERSION=2.40.3 sudo curl -fLo /usr/local/bin/yq \ "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" sudo chmod +x /usr/local/bin/yq sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-amd64" sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx sudo curl -fLo /usr/local/lib/docker/cli-plugins/docker-compose \ "https://github.com/docker/compose/releases/download/v${COMPOSE_VERSION}/docker-compose-linux-x86_64" sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose yq --version docker --version docker buildx version docker compose version - name: Checkout current SDK version uses: actions/checkout@v5 with: path: sdk-current fetch-depth: 0 - name: Determine baseline commit id: baseline working-directory: sdk-current run: | set -euo pipefail BASELINE=$(git merge-base HEAD origin/master) echo "sha=${BASELINE}" >> "$GITHUB_OUTPUT" if git merge-base --is-ancestor "${BASELINE}" origin/master && \ [ "$(git rev-parse origin/master)" = "${BASELINE}" ]; then BASELINE_REF="master" else BRANCH=$(git branch -r --contains "${BASELINE}" | grep -v HEAD | head -1 | sed 's|.*/||' || echo "") if [ -n "${BRANCH}" ]; then BASELINE_REF="${BRANCH}@${BASELINE:0:7}" else BASELINE_REF="${BASELINE:0:7}" fi fi echo "ref=${BASELINE_REF}" >> "$GITHUB_OUTPUT" - name: Checkout baseline SDK version uses: actions/checkout@v5 with: ref: ${{ steps.baseline.outputs.sha }} path: sdk-baseline fetch-depth: 1 - name: Checkout ydb-java-examples uses: actions/checkout@v5 with: repository: ydb-platform/ydb-java-examples ref: master path: examples - name: Build current workload image run: | set -euxo pipefail chmod +x sdk-current/.github/scripts/build-slo-image.sh sdk-current/.github/scripts/build-slo-image.sh \ --sdk sdk-current \ --examples examples \ --workload ${{ matrix.workload.module }} \ --tag "ydb-app-current-${{ matrix.workload.module }}" - name: Build baseline workload image run: | set -euxo pipefail sdk-current/.github/scripts/build-slo-image.sh \ --sdk sdk-baseline \ --examples examples \ --workload ${{ matrix.workload.module }} \ --tag "ydb-app-baseline-${{ matrix.workload.module }}" \ --fallback-image "ydb-app-current-${{ matrix.workload.module }}" - name: Run SLO Tests uses: ydb-platform/ydb-slo-action/init@v2 timeout-minutes: 30 with: github_issue: ${{ github.event.pull_request.number }} github_token: ${{ secrets.GITHUB_TOKEN }} workload_name: ${{ matrix.workload.name }} workload_duration: "600" workload_current_ref: ${{ github.head_ref || github.ref_name }} workload_current_image: ydb-app-current-${{ matrix.workload.module }} workload_current_command: --read-rps 1000 --write-rps 100 workload_baseline_ref: ${{ steps.baseline.outputs.ref }} workload_baseline_image: ydb-app-baseline-${{ matrix.workload.module }} workload_baseline_command: --read-rps 1000 --write-rps 100