File: build.yml

package info (click to toggle)
pgvector 0.8.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,124 kB
  • sloc: ansic: 8,966; perl: 2,786; sql: 2,016; makefile: 50; sh: 1
file content (135 lines) | stat: -rw-r--r-- 4,818 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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@v4
      - uses: ankane/setup-postgres@v1
        with:
          postgres-version: ${{ matrix.postgres }}
          dev-files: true
      - run: make
        env:
          PG_CFLAGS: ${{ matrix.postgres >= 18 && '-Wno-missing-field-initializers' || '' }} -DUSE_ASSERT_CHECKING -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare
      - 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: 17
            os: macos-15
          - postgres: 14
            os: macos-13
    steps:
      - uses: actions/checkout@v4
      - 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
      - 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 == 17 && 'REL_17_2' || 'REL_14_15' }}
      - 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-15' && 18 || 15 }}
          PG_CFLAGS: -DUSE_ASSERT_CHECKING
  windows:
    runs-on: windows-latest
    if: ${{ !startsWith(github.ref_name, 'mac') }}
    steps:
      - uses: actions/checkout@v4
      - uses: ankane/setup-postgres@v1
        with:
          postgres-version: 14
      - 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 && ^
          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
      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: |
          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 .
          sudo -u postgres make installcheck
          sudo -u postgres make prove_installcheck
        env:
          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@v4
      - uses: ankane/setup-postgres-valgrind@v1
        with:
          postgres-version: 17
          check-ub: yes
      - run: make OPTFLAGS=""
      - run: sudo --preserve-env=PG_CONFIG make install
      - run: make installcheck