Add GitHub Actions workflow for building and testing PG master

m3hm3t/pg18_pre
Mehmet Yilmaz 2025-04-03 10:34:53 +00:00
parent a7e686c106
commit c940bda953
1 changed files with 103 additions and 0 deletions

View File

@ -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 }}