diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50e65a8..92784c6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,120 +1,120 @@ 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 + # 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: debian:12 + image: alpine:3.23 options: --platform linux/386 steps: - - run: apt-get update && apt-get install -y build-essential git libipc-run-perl postgresql-15 postgresql-server-dev-15 sudo - - run: service postgresql start + - run: apk add --update build-base postgresql18 + - run: rc-update add postgresql && rc-service postgresql start - run: | git clone https://github.com/${{ github.repository }}.git pgvector cd pgvector @@ -129,15 +129,15 @@ jobs: PG_CFLAGS: -DUSE_ASSERT_CHECKING -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare - 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 + # 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