citus/.github/workflows/flaky_test_debugging.yml

97 lines
3.0 KiB
YAML

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"