24.3.2.23-alpine | Stress safe | Provider minio | Arch all #19
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 | |
- 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}} |