name: citusdata/citus/flaky_test_debugging on: workflow_dispatch: inputs: flaky_test: required: true flaky_test_runs_per_job: required: false default: 50 type: number image_suffix: required: false default: "-vbab548a" pg14_version: required: false default: '14.8' pg15_version: required: false default: '15.3' upgrade_pg_versions: required: false default: 14.8-15.3 style_checker_tools_version: required: false default: 0.8.18 jobs: build: if: ${{ inputs.flaky_test }} runs-on: ubuntu-latest container: image: "${{ vars.image }}" env: pg_major: 15 image: citus/extbuilder image_tag: "${{ inputs.pg15_version }}" steps: - uses: actions/checkout@v3.5.0 - name: Configure, Build, and Install run: "./ci/build-citus.sh" - uses: actions/upload-artifact@v3.1.1 with: path: |- ./build-${{ env.pg_major }}/* ./install-${{ env.pg_major }}.tar test-flakyness: if: ${{ inputs.flaky_test }} runs-on: ubuntu-latest container: image: '${{ vars.image }}:${{ vars.image_tag }}${{ vars.image_suffix }}' needs: - build env: pg_major: 15 image: citus/failtester image_tag: "${{ inputs.pg15_version }}" test: "${{ inputs.flaky_test }}" runs: "${{ inputs.flaky_test_runs_per_job }}" skip: false steps: - uses: actions/checkout@v3.5.0 - uses: actions/download-artifact@v3.0.1 with: path: "." - name: Detect regression tests need to be ran id: detect-regression-tests run: |- testForDebugging="${{ env.test }}" if [ -z "$testForDebugging" ]; then detected_changes=$(git diff origin/main... --name-only --diff-filter=AM | (grep 'src/test/regress/sql/.*\.sql\|src/test/regress/spec/.*\.spec\|src/test/regress/citus_tests/test/test_.*\.py' || true)) tests=${detected_changes} else tests=$testForDebugging; fi if [ -z "$tests" ]; then echo "No test found." circleci-agent step halt else echo "Detected tests " $tests fi echo "tests=$tests" >> "$GITHUB_OUTPUT" - uses: "./.github/actions/install_extension" with: pg_major: "${{ env.pg_major }}" - uses: "./.github/actions/configure" - uses: "./.github/actions/enable_core" - name: Run minimal tests run: |- tests_array=(${{ steps.detect-regression-tests.outputs.tests }}) for test in "${tests_array[@]}" do test_name=$(echo "$test" | sed -r "s/.+\/(.+)\..+/\1/") gosu circleci src/test/regress/citus_tests/run_test.py $test_name --repeat ${{ env.runs }} --use-base-schedule --use-whole-schedule-line done - uses: "./.github/actions/save_logs_and_results" - uses: "./.github/actions/save_regressions" - uses: "./.github/actions/stack_trace"