24.3 | Stress one by one | Provider minio | Arch all #31
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: 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 | |
- parts | |
- columns and indexes unsafe | |
- add remove replicas | |
- restarts | |
- full disk | |
- network faults | |
- one by one | |
- pairs/columns and part manipulation | |
- pairs/columns and ttl | |
- pairs/columns and projections | |
- pairs/columns and indexes | |
- pairs/columns and restarts | |
- pairs/columns and add remove replicas | |
- pairs/part manipulation and ttl | |
- pairs/part manipulation and projections | |
- pairs/part manipulation and indexes | |
- pairs/part manipulation and restarts | |
- pairs/part manipulation and network restarts | |
- pairs/ttl and projections | |
- pairs/ttl and indexes | |
- pairs/ttl and restarts | |
- pairs/ttl and network restarts | |
- pairs/ttl and add remove replicas | |
- pairs/projections and indexes | |
- pairs/projections and restarts | |
- pairs/projections and network restarts | |
- pairs/projections and add remove replicas | |
- pairs/indexes and restarts | |
- pairs/indexes and network restarts | |
- pairs/indexes and add remove replicas | |
- pairs/restarts and network restarts | |
- pairs/restarts and add remove replicas | |
- pairs/network restarts and add remove replicas | |
storage_provider: | |
description: "Storage Provider to use (default: minio)" | |
type: choice | |
options: | |
- minio | |
- local | |
- 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 ":/combinations/:/${{ 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-x86-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-x86-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-x86-artifacts | |
path: ${{ env.artifact_paths}} | |
alter_stress_local_x86: | |
runs-on: [self-hosted, type-cpx51, image-x86-app-docker-ce] | |
timeout-minutes: 10000 | |
env: | |
SUITE: alter/stress | |
STORAGE: /local_x86 | |
if: ${{ contains('all local', 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 local | |
--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-local-x86-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-arm-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-arm-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-arm-artifacts | |
path: ${{ env.artifact_paths}} | |
alter_stress_local_arm: | |
runs-on: [self-hosted, type-cax41, image-arm-app-docker-ce] | |
timeout-minutes: 10000 | |
env: | |
SUITE: alter/stress | |
STORAGE: /local_arm | |
if: ${{ contains('all local', 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 local | |
--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-local-arm-artifacts | |
path: ${{ env.artifact_paths}} |