name: build on: [push, pull_request] jobs: # ubuntu: # runs-on: ${{ matrix.os }} # if: ${{ !startsWith(github.ref_name, 'mac') && !startsWith(github.ref_name, 'windows') }} # strategy: # fail-fast: false # matrix: # include: # - postgres: 19 # os: ubuntu-24.04 # - postgres: 18 # os: ubuntu-24.04 # - postgres: 17 # os: ubuntu-24.04 # - postgres: 16 # os: ubuntu-24.04-arm # - postgres: 15 # os: ubuntu-22.04 # - postgres: 14 # os: ubuntu-22.04-arm # - postgres: 13 # os: ubuntu-22.04 # steps: # - uses: actions/checkout@v5 # - uses: ankane/setup-postgres@v1 # with: # postgres-version: ${{ matrix.postgres }} # dev-files: true # - run: make # env: # PG_CFLAGS: -DUSE_ASSERT_CHECKING -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare ${{ matrix.postgres >= 18 && '-Wno-missing-field-initializers' || '' }} # - run: | # export PG_CONFIG=`which pg_config` # sudo --preserve-env=PG_CONFIG make install # - run: make installcheck # - if: ${{ failure() }} # run: cat regression.diffs # - run: | # sudo apt-get update # sudo apt-get install libipc-run-perl # - run: make prove_installcheck # mac: # runs-on: ${{ matrix.os }} # if: ${{ !startsWith(github.ref_name, 'windows') }} # strategy: # fail-fast: false # matrix: # include: # - postgres: 18 # os: macos-26 # - postgres: 14 # os: macos-15-intel # steps: # - uses: actions/checkout@v5 # - uses: ankane/setup-postgres@v1 # with: # postgres-version: ${{ matrix.postgres }} # - run: make # env: # PG_CFLAGS: -DUSE_ASSERT_CHECKING -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unknown-warning-option ${{ matrix.postgres >= 18 && '-Wno-missing-field-initializers' || '' }} # - run: make install # - run: make installcheck # - if: ${{ failure() }} # run: cat regression.diffs # # Homebrew Postgres does not enable TAP tests, so need to download # - run: | # brew install cpanm # cpanm --notest IPC::Run # wget -q https://github.com/postgres/postgres/archive/refs/tags/$TAG.tar.gz # tar xf $TAG.tar.gz # mv postgres-$TAG postgres # env: # TAG: ${{ matrix.postgres == 18 && 'REL_18_0' || 'REL_14_19' }} # - run: make prove_installcheck PROVE_FLAGS="-I ./postgres/src/test/perl -I ./test/perl" # env: # PERL5LIB: /Users/runner/perl5/lib/perl5 # - run: make clean && $(brew --prefix llvm@$LLVM_VERSION)/bin/scan-build --status-bugs make # env: # LLVM_VERSION: ${{ matrix.os == 'macos-26' && 20 || 18 }} # PG_CFLAGS: -DUSE_ASSERT_CHECKING # windows: # runs-on: ${{ matrix.os }} # if: ${{ !startsWith(github.ref_name, 'mac') }} # strategy: # fail-fast: false # matrix: # include: # - postgres: 17 # os: windows-2025 # - postgres: 14 # os: windows-2022 # steps: # - uses: actions/checkout@v5 # - uses: ankane/setup-postgres@v1 # with: # postgres-version: ${{ matrix.postgres }} # - run: | # call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && ^ # nmake /NOLOGO /F Makefile.win && ^ # nmake /NOLOGO /F Makefile.win install && ^ # nmake /NOLOGO /F Makefile.win installcheck ${{ matrix.postgres != 17 && 'PG_REGRESS=$(PGROOT)\bin\pg_regress' || '' }} && ^ # nmake /NOLOGO /F Makefile.win clean && ^ # nmake /NOLOGO /F Makefile.win uninstall # shell: cmd # - if: ${{ failure() }} # run: cat regression.diffs i386: if: ${{ !startsWith(github.ref_name, 'mac') && !startsWith(github.ref_name, 'windows') }} runs-on: ubuntu-latest container: image: alpine:3.23 options: --platform linux/386 steps: - run: apk add --update build-base git openrc perl perl-ipc-run postgresql18 postgresql18-dev - run: rc-update add postgresql - run: | git clone https://github.com/${{ github.repository }}.git pgvector cd pgvector git fetch origin ${{ github.ref }} git reset --hard FETCH_HEAD make make install chown -R postgres . make installcheck make prove_installcheck env: PG_CFLAGS: -DUSE_ASSERT_CHECKING -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers - if: ${{ failure() }} run: cat pgvector/regression.diffs # valgrind: # if: ${{ !startsWith(github.ref_name, 'mac') && !startsWith(github.ref_name, 'windows') }} # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v5 # - uses: ankane/setup-postgres-valgrind@v1 # with: # postgres-version: 18 # check-ub: yes # - run: make OPTFLAGS="" # - run: sudo --preserve-env=PG_CONFIG make install # - run: make installcheck