Test Alpine

This commit is contained in:
Andrew Kane
2026-01-14 06:31:49 -08:00
parent 544686feb1
commit f09ef49dbf

View File

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