| name: Build / Regression |
| |
| on: |
| push: |
| branches: [ "master" ] |
| pull_request: |
| branches: [ "master" ] |
| |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - name: Get latest commit id of PostgreSQL 16 |
| run: | |
| echo "PG_COMMIT_HASH=$(git ls-remote git://git.postgresql.org/git/postgresql.git refs/heads/REL_16_STABLE | awk '{print $1}')" >> $GITHUB_ENV |
| |
| - name: Cache PostgreSQL 16 |
| uses: actions/cache@v3 |
| id: pg16cache |
| with: |
| path: ~/pg16 |
| key: ${{ runner.os }}-v1-pg16-${{ env.PG_COMMIT_HASH }} |
| |
| - name: Install PostgreSQL 16 and some extensions |
| if: steps.pg16cache.outputs.cache-hit != 'true' |
| run: | |
| git clone --depth 1 --branch REL_16_STABLE git://git.postgresql.org/git/postgresql.git ~/pg16source |
| cd ~/pg16source |
| ./configure --prefix=$HOME/pg16 CFLAGS="-std=gnu99 -ggdb -O0" --enable-cassert |
| make install -j$(nproc) > /dev/null |
| cd contrib |
| cd fuzzystrmatch |
| make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) > /dev/null |
| cd ../pg_trgm |
| make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) > /dev/null |
| |
| - uses: actions/checkout@v3 |
| |
| - name: Build AGE |
| id: build |
| run: | |
| make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) |
| |
| - name: Pull and build pgvector |
| id: pgvector |
| run: | |
| git clone https://github.com/pgvector/pgvector.git |
| cd pgvector |
| make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) > /dev/null |
| |
| - name: Regression tests |
| id: regression_tests |
| run: | |
| make PG_CONFIG=$HOME/pg16/bin/pg_config installcheck EXTRA_TESTS="pgvector fuzzystrmatch pg_trgm" |
| continue-on-error: true |
| |
| - name: Dump regression test errors |
| if: steps.regression_tests.outcome != 'success' |
| run: | |
| echo "Dump section begin." |
| cat $HOME/work/age/age/regress/regression.diffs |
| echo "Dump section end." |
| exit 1 |