Refactor citus tests

eag/mvtests-mixed-setup
eaydingol 2025-11-25 16:13:55 +03:00
parent 80f05bcefc
commit 958695551d
2 changed files with 58 additions and 127 deletions

View File

@ -131,7 +131,8 @@ jobs:
path: |- path: |-
./build-${{ env.PG_MAJOR }}/* ./build-${{ env.PG_MAJOR }}/*
./install-${{ env.PG_MAJOR }}.tar ./install-${{ env.PG_MAJOR }}.tar
test-citus-new: test-citus:
name: Test Citus
uses: ./.github/workflows/run_tests.yml uses: ./.github/workflows/run_tests.yml
needs: needs:
- params - params
@ -139,139 +140,69 @@ jobs:
with: with:
pg_versions: > pg_versions: >
[ [
${{ needs.params.outputs.pg15_version }},
${{ needs.params.outputs.pg16_version }}, ${{ needs.params.outputs.pg16_version }},
${{ needs.params.outputs.pg17_version }} ${{ needs.params.outputs.pg17_version }}
] ]
make_targets: '["check-split", "check-multi"]' make_targets: '["check-split", "check-multi", "check-multi-1", "check-multi-mx", "check-vanilla", "check-isolation", "check-operations", "check-follower-cluster", "check-add-backup-node", "check-columnar", "check-columnar-isolation", "check-enterprise", "check-enterprise-isolation", "check-enterprise-isolation-logicalrep-1", "check-enterprise-isolation-logicalrep-2", "check-enterprise-isolation-logicalrep-3"]'
image_suffix: ${{ needs.params.outputs.image_suffix }} image_suffix: ${{ needs.params.outputs.image_suffix }}
image_name: ${{ needs.params.outputs.test_image_name }} image_name: ${{ needs.params.outputs.test_image_name }}
secrets: secrets:
codecov_token: ${{ secrets.CODECOV_TOKEN }} codecov_token: ${{ secrets.CODECOV_TOKEN }}
test-citus-schema-compatibility:
test-citus: name: Test Citus Schema Compatibility
name: PG${{ fromJson(matrix.pg_version).major }} - ${{ matrix.make }} - ${{ matrix.citus_version}} uses: ./.github/workflows/run_tests.yml
strategy:
fail-fast: false
matrix:
suite:
- regress
image_name:
- ${{ needs.params.outputs.test_image_name }}
pg_version:
- ${{ needs.params.outputs.pg15_version }}
- ${{ needs.params.outputs.pg16_version }}
- ${{ needs.params.outputs.pg17_version }}
make:
- check-split
- check-multi
- check-multi-1
- check-multi-mx
- check-vanilla
- check-isolation
- check-operations
- check-follower-cluster
- check-add-backup-node
- check-columnar
- check-columnar-isolation
- check-enterprise
- check-enterprise-isolation
- check-enterprise-isolation-logicalrep-1
- check-enterprise-isolation-logicalrep-2
- check-enterprise-isolation-logicalrep-3
citus_version:
-
include:
- make: check-failure
pg_version: ${{ needs.params.outputs.pg15_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-failure
pg_version: ${{ needs.params.outputs.pg16_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-failure
pg_version: ${{ needs.params.outputs.pg17_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-enterprise-failure
pg_version: ${{ needs.params.outputs.pg15_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-enterprise-failure
pg_version: ${{ needs.params.outputs.pg16_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-enterprise-failure
pg_version: ${{ needs.params.outputs.pg17_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-pytest
pg_version: ${{ needs.params.outputs.pg15_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-pytest
pg_version: ${{ needs.params.outputs.pg16_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-pytest
pg_version: ${{ needs.params.outputs.pg17_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: installcheck
suite: cdc
image_name: ${{ needs.params.outputs.test_image_name }}
pg_version: ${{ needs.params.outputs.pg15_version }}
- make: installcheck
suite: cdc
image_name: ${{ needs.params.outputs.test_image_name }}
pg_version: ${{ needs.params.outputs.pg16_version }}
- make: installcheck
suite: cdc
image_name: ${{ needs.params.outputs.test_image_name }}
pg_version: ${{ needs.params.outputs.pg17_version }}
- make: check-query-generator
pg_version: ${{ needs.params.outputs.pg15_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-query-generator
pg_version: ${{ needs.params.outputs.pg16_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
- make: check-query-generator
pg_version: ${{ needs.params.outputs.pg17_version }}
suite: regress
image_name: ${{ needs.params.outputs.fail_test_image_name }}
runs-on: ubuntu-latest
container:
image: "${{ matrix.image_name }}:${{ fromJson(matrix.pg_version).full }}${{ needs.params.outputs.image_suffix }}"
options: >-
--user root
--dns=8.8.8.8
--cap-add=SYS_NICE
--security-opt seccomp=unconfined
# Due to Github creates a default network for each job, we need to use
# --dns= to have similar DNS settings as our other CI systems or local
# machines. Otherwise, we may see different results.
# and grant caps so PG18's NUMA introspection (pg_shmem_allocations_numa -> move_pages)
# doesn't fail with EPERM in CI.
needs: needs:
- params - params
- build - build
steps: with:
- uses: actions/checkout@v4 pg_versions: >
- uses: "./.github/actions/setup_extension" [
- name: Run Test ${{ needs.params.outputs.pg17_version }}
run: CITUSVERSION=${{ matrix.citus_version }} gosu circleci make -C src/test/${{ matrix.suite }} ${{ matrix.make }} ]
timeout-minutes: 20 make_targets: '["check-split", "check-multi", "check-multi-1", "check-multi-mx", "check-vanilla", "check-isolation", "check-operations", "check-follower-cluster", "check-add-backup-node", "check-columnar", "check-columnar-isolation", "check-enterprise", "check-enterprise-isolation", "check-enterprise-isolation-logicalrep-1", "check-enterprise-isolation-logicalrep-2", "check-enterprise-isolation-logicalrep-3"]'
- uses: "./.github/actions/save_logs_and_results" image_suffix: ${{ needs.params.outputs.image_suffix }}
if: always() image_name: ${{ needs.params.outputs.test_image_name }}
with: citus_version: 13.2-1
folder: ${{ fromJson(matrix.pg_version).major }}_${{ matrix.make }}_${{ matrix.citus_version }} secrets:
- uses: "./.github/actions/upload_coverage" codecov_token: ${{ secrets.CODECOV_TOKEN }}
if: always() test-citus-failure:
with: name: Test Citus Failure
flags: ${{ env.PG_MAJOR }}_${{ matrix.suite }}_${{ matrix.make }} uses: ./.github/workflows/run_tests.yml
codecov_token: ${{ secrets.CODECOV_TOKEN }} needs:
- params
- build
with:
pg_versions: >
[
${{ needs.params.outputs.pg15_version }},
${{ needs.params.outputs.pg16_version }},
${{ needs.params.outputs.pg17_version }}
]
make_targets: '["check-failure", "check-enterprise-failure", "check-pytest", "check-query-generator"]'
image_suffix: ${{ needs.params.outputs.image_suffix }}
image_name: ${{ needs.params.outputs.fail_test_image_name }}
secrets:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
test-citus-cdc:
name: Test Citus CDC
uses: ./.github/workflows/run_tests.yml
needs:
- params
- build
with:
pg_versions: >
[
${{ needs.params.outputs.pg15_version }},
${{ needs.params.outputs.pg16_version }},
${{ needs.params.outputs.pg17_version }}
]
make_targets: '["installcheck"]'
image_suffix: ${{ needs.params.outputs.image_suffix }}
image_name: ${{ needs.params.outputs.test_image_name }}
suite: cdc
secrets:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
test-arbitrary-configs: test-arbitrary-configs:
name: PG${{ fromJson(matrix.pg_version).major }} - check-arbitrary-configs-${{ matrix.parallel }} name: PG${{ fromJson(matrix.pg_version).major }} - check-arbitrary-configs-${{ matrix.parallel }}
runs-on: ["self-hosted", "1ES.Pool=1es-gha-citusdata-pool"] runs-on: ["self-hosted", "1ES.Pool=1es-gha-citusdata-pool"]

View File

@ -28,7 +28,7 @@ on:
jobs: jobs:
test: test:
name: PG${{ matrix.pg_version.major }} - ${{ matrix.make }}${{ inputs.citus_version && format(' - {0}', inputs.citus_version) || '' }} - New name: PG${{ matrix.pg_version.major }} - ${{ matrix.make }}${{ inputs.citus_version && format(' - {0}', inputs.citus_version) || '' }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix: