From c940bda953ea7e658d76869913b825e0ce0b8b41 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Thu, 3 Apr 2025 10:34:53 +0000 Subject: [PATCH] Add GitHub Actions workflow for building and testing PG master --- .../workflows/build-and-test-pg-master.yml | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 .github/workflows/build-and-test-pg-master.yml diff --git a/.github/workflows/build-and-test-pg-master.yml b/.github/workflows/build-and-test-pg-master.yml new file mode 100644 index 000000000..79d0c5c00 --- /dev/null +++ b/.github/workflows/build-and-test-pg-master.yml @@ -0,0 +1,103 @@ +name: Build & Test PG Master + +on: + workflow_dispatch: + push: + branches: + - "main" + pull_request: + +jobs: + params: + runs-on: ubuntu-latest + name: Initialize parameters + outputs: + build_image_name: "ghcr.io/citusdata/extbuilder" + test_image_name: "ghcr.io/citusdata/exttester" + pg_master_version: '{ "major": "master", "full": "master" }' + image_suffix: "-veab367a" + steps: + - name: Set up parameters + run: echo 'noop' + + build_pg_master: + needs: params + name: Build for PG${{ fromJson(matrix.pg_version).major }} + strategy: + fail-fast: false + matrix: + image_name: + - ${{ needs.params.outputs.build_image_name }} + pg_version: + - ${{ needs.params.outputs.pg_master_version }} + image_suffix: + - ${{ needs.params.outputs.image_suffix }} + runs-on: ubuntu-20.04 + container: + image: "${{ matrix.image_name }}:${{ fromJson(matrix.pg_version).full }}${{ matrix.image_suffix }}" + options: --user root + steps: + - uses: actions/checkout@v4 + - name: Expose PG_MAJOR to GitHub Environment + run: echo "PG_MAJOR=${{ fromJson(matrix.pg_version).major }}" >> $GITHUB_ENV + shell: bash + - name: Build Citus with PG master branch + run: "./ci/build-citus.sh" + shell: bash + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: build-${{ env.PG_MAJOR }} + path: |- + ./build-${{ env.PG_MAJOR }}/* + ./install-${{ env.PG_MAJOR }}.tar + + test_citus_pg_master: + needs: build_pg_master + name: PG${{ fromJson(matrix.pg_version).major }} - Test Citus + strategy: + fail-fast: false + matrix: + suite: + - regress + image_name: + - ${{ needs.params.outputs.test_image_name }} + pg_version: + - ${{ needs.params.outputs.pg_master_version }} + make: + - check-split + - check-multi + - check-multi-1 + - check-multi-mx + - check-vanilla + - check-isolation + - check-operations + - check-follower-cluster + - 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 + runs-on: ubuntu-20.04 + container: + image: "${{ matrix.image_name }}:${{ fromJson(matrix.pg_version).full }}${{ needs.params.outputs.image_suffix }}" + options: --user root --dns=8.8.8.8 + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup_extension + - name: Run tests + run: gosu circleci make -C src/test/${{ matrix.suite }} ${{ matrix.make }} + timeout-minutes: 20 + - name: Save logs and results + if: always() + uses: ./.github/actions/save_logs_and_results + with: + folder: ${{ fromJson(matrix.pg_version).major }}_${{ matrix.make }} + - name: Upload coverage results + if: always() + uses: ./.github/actions/upload_coverage + with: + flags: ${{ env.PG_MAJOR }}_${{ matrix.suite }}_${{ matrix.make }} + codecov_token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file