diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 0c313fb79..5c5fa2725 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -131,6 +131,19 @@ jobs: path: |- ./build-${{ env.PG_MAJOR }}/* ./install-${{ env.PG_MAJOR }}.tar + test-citus-new: + uses: ./.github/workflows/run_tests.yml + needs: + - params + - build + with: + pg_versions: '[${{ needs.params.outputs.pg16_version }}, ${{ needs.params.outputs.pg17_version }}]' + make_targets: '["check-split", "check-multi"]' + image_suffix: ${{ needs.params.outputs.image_suffix }} + image_name: ${{ needs.params.outputs.test_image_name }} + secrets: + codecov_token: ${{ secrets.CODECOV_TOKEN }} + test-citus: name: PG${{ fromJson(matrix.pg_version).major }} - ${{ matrix.make }} - ${{ matrix.citus_version}} strategy: @@ -163,7 +176,6 @@ jobs: - check-enterprise-isolation-logicalrep-3 citus_version: - - - 13.2-1 include: - make: check-failure pg_version: ${{ needs.params.outputs.pg15_version }} diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml new file mode 100644 index 000000000..00f275822 --- /dev/null +++ b/.github/workflows/run_tests.yml @@ -0,0 +1,59 @@ +name: Run Tests +on: + workflow_call: + inputs: + pg_versions: + required: true + type: string + make_targets: + required: true + type: string + image_suffix: + required: true + type: string + image_name: + required: true + type: string + suite: + required: false + type: string + default: "regress" + citus_version: + required: false + type: string + default: "" + secrets: + codecov_token: + required: false + +jobs: + test: + name: PG${{ fromJson(matrix.pg_version).major }} - ${{ matrix.make }}${{ inputs.citus_version && format(' - {0}', inputs.citus_version) || '' }} + strategy: + fail-fast: false + matrix: + pg_version: ${{ fromJson(inputs.pg_versions) }} + make: ${{ fromJson(inputs.make_targets) }} + runs-on: ubuntu-latest + container: + image: "${{ inputs.image_name }}:${{ fromJson(matrix.pg_version).full }}${{ inputs.image_suffix }}" + options: >- + --user root + --dns=8.8.8.8 + --cap-add=SYS_NICE + --security-opt seccomp=unconfined + steps: + - uses: actions/checkout@v4 + - uses: "./.github/actions/setup_extension" + - name: Run Test + run: CITUSVERSION=${{ inputs.citus_version }} gosu circleci make -C src/test/${{ inputs.suite }} ${{ matrix.make }} + timeout-minutes: 20 + - uses: "./.github/actions/save_logs_and_results" + if: always() + with: + folder: ${{ fromJson(matrix.pg_version).major }}_${{ matrix.make }}${{ inputs.citus_version && format('_{0}', inputs.citus_version) || '' }} + - uses: "./.github/actions/upload_coverage" + if: always() + with: + flags: ${{ env.PG_MAJOR }}_${{ inputs.suite }}_${{ matrix.make }} + codecov_token: ${{ secrets.codecov_token }}