diff --git a/.github/workflows/run.yaml b/.github/workflows/run.yaml index a6b6210..537805a 100644 --- a/.github/workflows/run.yaml +++ b/.github/workflows/run.yaml @@ -12,6 +12,9 @@ jobs: strategy: fail-fast: false matrix: + builder: + - autoconf + - meson branch: - REL_12 - REL_13 @@ -19,7 +22,7 @@ jobs: - REL_15 - REL_16 - HEAD - name: ${{ matrix.branch }} + name: ${{ matrix.branch }} (${{ matrix.builder }}) steps: - uses: actions/checkout@v4.1.1 - name: Set up Docker Buildx @@ -36,7 +39,7 @@ jobs: - uses: actions/cache@v4.0.2 with: path: buildroot - key: run-alpine-autoconf-${{ matrix.branch }} + key: run-alpine-${{ matrix.builder }}-${{ matrix.branch }} - name: Run buildfarm client run: | mkdir -p buildroot @@ -45,7 +48,7 @@ jobs: -u "$(id -u):$(id -g)" \ buildfarm-client:alpine \ --test \ - --config autoconf.conf \ + --config ${{ matrix.builder }}.conf \ --delay-check \ ${{ matrix.branch }} # TODO: Remove --delay-check once this is fixed: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index aa5e1b4..464f12b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -9,7 +9,13 @@ on: jobs: test: runs-on: ubuntu-latest - name: Test autoconf + strategy: + fail-fast: false + matrix: + builder: + - autoconf + - meson + name: Test ${{ matrix.builder }} steps: - uses: actions/checkout@v4.1.1 - name: Set up Docker Buildx @@ -26,8 +32,8 @@ jobs: - uses: actions/cache@v4.0.2 with: path: buildroot - key: test-alpine-autoconf - - name: Test autoconf.conf + key: test-alpine-${{ matrix.builder }} + - name: Test ${{ matrix.builder }}.conf run: | mkdir -p buildroot docker run --rm \ @@ -35,7 +41,7 @@ jobs: -u "$(id -u):$(id -g)" \ buildfarm-client:alpine \ --test \ - --config autoconf.conf \ + --config ${{ matrix.builder }}.conf \ --delay-check # TODO: Remove --delay-check once this is fixed: # https://www.postgresql.org/message-id/flat/fddd1cd6-dc16-40a2-9eb5-d7fef2101488%40technowledgy.de \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 2adf6f5..f53361d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,9 @@ RUN apk add \ libxml2-dev \ libxslt-dev \ linux-headers \ + lz4-dev \ + meson \ + ninja \ nss_wrapper \ openldap-dev \ openssl-dev \ @@ -25,7 +28,8 @@ RUN apk add \ python3-dev \ readline-dev \ tcl-dev \ - zlib-dev + zlib-dev \ + zstd-dev ARG BUILDFARM_CLIENT_VERSION=REL_17 diff --git a/meson.conf b/meson.conf new file mode 100644 index 0000000..a990bd4 --- /dev/null +++ b/meson.conf @@ -0,0 +1,17 @@ +require 'shared.conf'; + +@PGBuild::conf{animal} = $ENV{MESON_ANIMAL} // @PGBuild::conf{animal}; +@PGBuild::conf{secret} = $ENV{MESON_SECRET} // @PGBuild::conf{secret}; + +@PGBuild::conf{using_meson} = true; +@PGBuild::conf{meson_jobs} = 2; + +push(@{@PGBuild::conf{meson_opts}}, ('-Dlz4=enabled', '-Dzstd=enabled')); + +# TODO: Building with --enable-nls currently fails with: +# ld: ../../src/port/libpgport.a(strerror.o): in function `pg_strerror_r': +# src/port/strerror.c:72:(.text+0x260): undefined reference to `libintl_gettext' +# ld: src/port/strerror.c:72:(.text+0x2d8): undefined reference to `libintl_gettext' +push(@{@PGBuild::conf{meson_opts}}, '-Dnls=disabled'); + +1;