Skip to content

24.3.2.23-alpine | Stress safe | Provider minio | Arch all #20

24.3.2.23-alpine | Stress safe | Provider minio | Arch all

24.3.2.23-alpine | Stress safe | Provider minio | Arch all #20

name: Run CI/CD alter stress tests
run-name: ${{ inputs.custom_run_name || format('{0} | Stress {1} | Provider {2} | Arch {3}', inputs.version, inputs.scenario, inputs.storage_provider, inputs.architecture) }}
on:
workflow_dispatch:
inputs:
package:
description: "Package either 'docker://' or 'https://'. Example: 'https://s3.amazonaws.com/clickhouse-builds/23.3/.../package_release/clickhouse-common-static_23.3.1.64_amd64.deb', or 'docker://altinity/clickhouse-server:23.8.8'"
required: true
type: string
default: docker://altinity/clickhouse-server:23.8.8.21.altinitystable
version:
description: "Expected version. Example: 23.3.1.64"
required: true
type: string
scenario:
description: "Stress scenario to run (default: safe)"
type: choice
options:
- safe
- add-remove-replicas
- full-disk
- network-faults
- insert-faults
storage_provider:
description: "Storage Provider to use (default: minio)"
type: choice
options:
- minio
- aws_s3
- gcs
- all
architecture:
description: "Runner architecture to use (default: x86)"
type: choice
options:
- x86
- ARM
- all
artifacts:
description: "Artifact S3 bucket"
type: choice
options:
- public
- internal
output_format:
description: "Testflows output style."
type: choice
options:
- new-fails
- classic
- nice
- fails
- slick
- brisk
- quiet
- short
- manual
- dots
- progress
- raw
ref:
description: "Commit SHA to checkout. Default: current (empty string)."
type: string
default: ""
extra_args:
description: "Extra test program arguments. Default: none (empty string)."
type: string
default: ""
custom_run_name:
description: 'Custom run name (optional)'
required: false
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_REPORT_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_REPORT_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REPORT_REGION }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
PYTHONIOENCODING: utf-8
clickhouse_binary_path: ${{ inputs.package }}
version: ${{ inputs.version }}
artifacts: ${{ inputs.artifacts }}
args: --test-to-end
--no-colors
--local
--collect-service-logs
--output ${{ inputs.output_format }}
--parallel ${{ vars.PARALLEL }}
--attr project="${GITHUB_REPOSITORY}" project.id="${GITHUB_REPOSITORY_ID}" user.name="${GITHUB_ACTOR}" version="${{ inputs.version }}" package="${{ inputs.package }}" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="${GITHUB_SHA}" job.id="${GITHUB_RUN_ID}" job.url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" arch="$(uname -i)"
--log raw.log ${{ inputs.extra_args }}
--stress
--only ":/alter/:/${{ inputs.scenario }}*"
artifact_paths: |
./report.html
./*.log.txt
./*.log
./*.html
./*/_instances/*.log
./*/_instances/*/logs/*.log
./*/*/_instances/*/logs/*.log
./*/*/_instances/*.log
jobs:
alter_stress_aws_x86:
runs-on: [self-hosted, type-cpx51, image-x86-app-docker-ce]
timeout-minutes: 10000
env:
SUITE: alter/stress
STORAGE: /aws_x86
if: ${{ contains('all aws_s3', inputs.storage_provider) && contains('all x86', inputs.architecture) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup
run: .github/setup.sh
- name: Run ${{ env.SUITE }} suite
run: python3
-u ${{ env.SUITE }}/regression.py
--storage aws_s3
--aws-s3-bucket ${{ secrets.AWS_BUCKET }}
--aws-s3-region ${{ secrets.AWS_REGION }}
--aws-s3-key-id ${{ secrets.AWS_KEY_ID }}
--aws-s3-access-key ${{ secrets.AWS_ACCESS_KEY }}
--clickhouse-binary-path ${{ env.clickhouse_binary_path }}
--clickhouse-version ${{ env.version }}
${{ env.args }}
- name: Create and upload logs
if: always()
run: .github/create_and_upload_logs.sh ${{ vars.UPLOAD_LOGS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: alter-stress-aws-artifacts
path: ${{ env.artifact_paths}}
alter_stress_gcs_x86:
runs-on: [self-hosted, type-cpx51, image-x86-app-docker-ce]
timeout-minutes: 10000
env:
SUITE: alter/stress
STORAGE: /gcs_x86
if: ${{ contains('all gcs', inputs.storage_provider) && contains('all x86', inputs.architecture) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup
run: .github/setup.sh
- name: Run ${{ env.SUITE }} suite
run: python3
-u ${{ env.SUITE }}/regression.py
--storage gcs
--gcs-uri ${{ secrets.GCS_URI }}
--gcs-key-id ${{ secrets.GCS_KEY_ID }}
--gcs-key-secret ${{ secrets.GCS_KEY_SECRET }}
--clickhouse-binary-path ${{ env.clickhouse_binary_path }}
--clickhouse-version ${{ env.version }}
${{ env.args }}
- name: Create and upload logs
if: always()
run: .github/create_and_upload_logs.sh ${{ vars.UPLOAD_LOGS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: alter-stress-gcs-artifacts
path: ${{ env.artifact_paths}}
alter_stress_minio_x86:
runs-on: [self-hosted, type-cpx51, image-x86-app-docker-ce]
timeout-minutes: 10000
env:
SUITE: alter/stress
STORAGE: /minio_x86
if: ${{ contains('all minio', inputs.storage_provider) && contains('all x86', inputs.architecture) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup
run: .github/setup.sh
- name: Run ${{ env.SUITE }} suite
run: python3
-u ${{ env.SUITE }}/regression.py
--storage minio
--clickhouse-binary-path ${{ env.clickhouse_binary_path }}
--clickhouse-version ${{ env.version }}
${{ env.args }}
- name: Create and upload logs
if: always()
run: .github/create_and_upload_logs.sh ${{ vars.UPLOAD_LOGS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: alter-stress-minio-artifacts
path: ${{ env.artifact_paths}}
alter_stress_aws_arm:
runs-on: [self-hosted, type-cax41, image-arm-app-docker-ce]
timeout-minutes: 10000
env:
SUITE: alter/stress
STORAGE: /aws_arm
if: ${{ contains('all aws_s3', inputs.storage_provider) && contains('all ARM', inputs.architecture) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup
run: .github/setup.sh
- name: Run ${{ env.SUITE }} suite
run: python3
-u ${{ env.SUITE }}/regression.py
--storage aws_s3
--aws-s3-bucket ${{ secrets.AWS_BUCKET }}
--aws-s3-region ${{ secrets.AWS_REGION }}
--aws-s3-key-id ${{ secrets.AWS_KEY_ID }}
--aws-s3-access-key ${{ secrets.AWS_ACCESS_KEY }}
--clickhouse-binary-path ${{ env.clickhouse_binary_path }}
--clickhouse-version ${{ env.version }}
${{ env.args }}
- name: Create and upload logs
if: always()
run: .github/create_and_upload_logs.sh ${{ vars.UPLOAD_LOGS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: alter-stress-aws-artifacts
path: ${{ env.artifact_paths}}
alter_stress_gcs_arm:
runs-on: [self-hosted, type-cax41, image-arm-app-docker-ce]
timeout-minutes: 10000
env:
SUITE: alter/stress
STORAGE: /gcs_arm
if: ${{ contains('all gcs', inputs.storage_provider) && contains('all ARM', inputs.architecture) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup
run: .github/setup.sh
- name: Run ${{ env.SUITE }} suite
run: python3
-u ${{ env.SUITE }}/regression.py
--storage gcs
--gcs-uri ${{ secrets.GCS_URI }}
--gcs-key-id ${{ secrets.GCS_KEY_ID }}
--gcs-key-secret ${{ secrets.GCS_KEY_SECRET }}
--clickhouse-binary-path ${{ env.clickhouse_binary_path }}
--clickhouse-version ${{ env.version }}
${{ env.args }}
- name: Create and upload logs
if: always()
run: .github/create_and_upload_logs.sh ${{ vars.UPLOAD_LOGS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: alter-stress-gcs-artifacts
path: ${{ env.artifact_paths}}
alter_stress_minio_arm:
runs-on: [self-hosted, type-cax41, image-arm-app-docker-ce]
timeout-minutes: 10000
env:
SUITE: alter/stress
STORAGE: /minio_arm
if: ${{ contains('all minio', inputs.storage_provider) && contains('all ARM', inputs.architecture) }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup
run: .github/setup.sh
- name: Run ${{ env.SUITE }} suite
run: python3
-u ${{ env.SUITE }}/regression.py
--storage minio
--clickhouse-binary-path ${{ env.clickhouse_binary_path }}
--clickhouse-version ${{ env.version }}
${{ env.args }}
- name: Create and upload logs
if: always()
run: .github/create_and_upload_logs.sh ${{ vars.UPLOAD_LOGS }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: alter-stress-minio-artifacts
path: ${{ env.artifact_paths}}