From 2dd9ecaf71b3460b0bcc500c7961f1c0045932ff Mon Sep 17 00:00:00 2001 From: alex-zaitsev Date: Mon, 12 Aug 2024 17:14:37 +0300 Subject: [PATCH] Update run_tests.yaml --- .github/workflows/run_tests.yaml | 94 +++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 25 deletions(-) diff --git a/.github/workflows/run_tests.yaml b/.github/workflows/run_tests.yaml index 869afe34d..227c959a7 100644 --- a/.github/workflows/run_tests.yaml +++ b/.github/workflows/run_tests.yaml @@ -1,13 +1,28 @@ name: run_tests -on: workflow_dispatch +on: + pull_request: + branches: + - '*' + workflow_dispatch: + inputs: + test_mode: + description: 'Test mode' + type: choice + options: + - Run all + - Fail fast + test_mask: + description: 'Wildcard mask to run only some tests. Empty means all.' + type: string + required: false jobs: run_tests: name: Run Tests runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache python - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache-python with: path: ~/venv/qa @@ -32,36 +47,58 @@ jobs: with: driver: docker container-runtime: containerd - kubernetes-version: v1.25.3 + kubernetes-version: v1.30.0 cpus: max memory: max + - name: Build clickhouse-operator locally without push to registry + run: | + minikube status + export CHO_RELEASE=$(cat release) + echo "current release=$CHO_RELEASE" + + docker build -f dockerfile/operator/Dockerfile -t altinity/clickhouse-operator:${CHO_RELEASE} --pull . + docker build -f dockerfile/metrics-exporter/Dockerfile -t altinity/metrics-exporter:${CHO_RELEASE} --pull . + + docker image save altinity/clickhouse-operator:${CHO_RELEASE} -o operator.tar + docker image save altinity/metrics-exporter:${CHO_RELEASE} -o metrics-exporter.tar + + minikube image load operator.tar + minikube image load metrics-exporter.tar + - name: Run Tests + id: run-tests + continue-on-error: true run: | source ~/venv/qa/bin/activate set -x + set +e # disable the "exit on failure" - # bash -xe ./deploy/prometheus/create-prometheus.sh - # bash -xe ./deploy/minio/install-minio-operator.sh - # bash -xe ./deploy/minio/install-minio-tenant.sh + sudo ln -snvf ~/venv/qa/bin/tfs /bin/tfs - # bash -xe /deploy/grafana/grafana-with-grafana-operator/install-grafana-operator.sh - # bash -xe /deploy/grafana/grafana-with-grafana-operator/install-grafana-with-operator.sh - - # docker compose -f ./tests/docker-compose/docker-compose.yml pull runner - # ~/venv/qa/bin/python3 ./tests/regression.py --only "/regression/e2e.test_operator/*" --trim-results on --debug --log ./tests/raw.log + if [[ "${{ github.event.inputs.test_mask }}" != '' ]] + then + ONLY="${{ github.event.inputs.test_mask }}" + else + ONLY="*" + fi - # bash ./tests/e2e/run_tests_parallel.sh - sudo ln -snvf ~/venv/qa/bin/tfs /bin/tfs - ONLY='*' - # ONLY='*test_036*' - ~/venv/qa/bin/python3 ./tests/regression.py --only "/regression/e2e.test_operator/${ONLY}" --trim-results on --debug --native --log ./tests/raw.log - ~/venv/qa/bin/tfs --debug --no-colors transform compact ./tests/raw.log ./tests/compact.log - ~/venv/qa/bin/tfs --debug --no-colors transform nice ./tests/raw.log ./tests/nice.log.txt - ~/venv/qa/bin/tfs --debug --no-colors transform short ./tests/raw.log ./tests/short.log.txt - ~/venv/qa/bin/tfs --debug --no-colors report results -a "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/" ./tests/raw.log - --confidential --copyright "Altinity LTD" --logo ./tests/altinity.png | ~/venv/qa/bin/tfs --debug --no-colors document convert > ./tests/report.html - - - uses: actions/upload-artifact@v3 + if [[ "${{ github.event.inputs.test_mode }}" == 'Run all' ]] + then + test_mode="--test-to-end" + fi + + ~/venv/qa/bin/python3 ./tests/regression.py --only=/regression/e2e.test_operator/${ONLY} $test_mode --trim-results on -o short --native --log ./tests/raw.log + test_result=$? + ~/venv/qa/bin/tfs --no-colors transform compact ./tests/raw.log ./tests/compact.log + ~/venv/qa/bin/tfs --no-colors transform nice ./tests/raw.log ./tests/nice.log.txt + ~/venv/qa/bin/tfs --no-colors transform short ./tests/raw.log ./tests/short.log.txt + ~/venv/qa/bin/tfs --no-colors report results -a "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/" ./tests/raw.log - --confidential --copyright "Altinity Inc." --logo ./tests/altinity.png | ~/venv/qa/bin/tfs --debug --no-colors document convert > ./tests/report.html + + echo "test_result=$test_result" >> $GITHUB_OUTPUT + exit "$test_result" + + - uses: actions/upload-artifact@v4 with: name: testflows-logs path: | @@ -70,10 +107,17 @@ jobs: if-no-files-found: error retention-days: 7 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: testflows-report path: | tests/report.html if-no-files-found: error - retention-days: 7 + retention-days: 90 + + - name: Test Failed + if: ${{ steps.vars.outputs.test_result != '0' }} + uses: actions/github-script@v3 + with: + script: | + core.setFailed('Test suite has failures! Check test run status and logs.')