24.3.2.23-alpine | Stress safe | Provider minio | Arch all #26
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 | |
- indexes and projections | |
- 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}} |