mirror of https://github.com/citusdata/citus.git
97 lines
3.0 KiB
YAML
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"
|