mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
f92ce674f7
Maintaining the version interfaces was complicated by the fact that each interface needed to be in separate compilation unit to avoid type conflicts. This also meant that various build/test files needed to be updated to add the new interfaces. Solve these problems by auto-generating all the interfaces into a single file. This is made possible by parsing defines and types out of the header files and creating macros to rename the types. At the end of the version interface everything is undef'd. Another benefit is that the auto-generated interfaces can be static and included directly into postgres/interface.c. Since some code generation is now always required for tests, change --no-gen to --min-gen in test.pl. It would also make sense to auto-generate the version defines in postgres/version.h, but that will be left for a future commit.
83 lines
3.4 KiB
YAML
83 lines
3.4 KiB
YAML
# Cirrus CI Build Definitions
|
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
# Build the branch if it is integration, a pull request, or ends in -ci/-cic (-cic targets only Cirrus CI)
|
|
only_if: $CIRRUS_BRANCH == 'integration' || $CIRRUS_PR != '' || $CIRRUS_BRANCH =~ '.*-ci$' || $CIRRUS_BRANCH =~ '.*-cic$'
|
|
|
|
# No auto-cancel on integration
|
|
auto_cancellation: $CIRRUS_BRANCH != 'integration'
|
|
|
|
# Arm64
|
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
arm64_task:
|
|
arm_container:
|
|
image: ubuntu:20.04
|
|
cpu: 4
|
|
memory: 2G
|
|
|
|
install_script:
|
|
- apt-get update && apt-get install -y perl sudo locales
|
|
- sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
|
|
- dpkg-reconfigure --frontend=noninteractive locales
|
|
- update-locale LANG=en_US.UTF-8
|
|
- adduser --disabled-password --gecos "" testuser
|
|
- echo '%testuser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
- chown -R testuser ${CIRRUS_WORKING_DIR?}
|
|
|
|
script:
|
|
- su - testuser -c "${CIRRUS_WORKING_DIR?}/test/ci.pl test --vm=none --sudo --no-tempfs --param=c-only --param=no-coverage"
|
|
|
|
# FreeBSD 12
|
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
freebsd_12_task:
|
|
freebsd_instance:
|
|
image_family: freebsd-12-3
|
|
cpu: 4
|
|
memory: 4G
|
|
|
|
install_script: pkg install -y bash git postgresql-libpqxx pkgconf libxml2 gmake perl5 libyaml p5-YAML-LibYAML rsync meson
|
|
|
|
script:
|
|
- cd .. && perl ${CIRRUS_WORKING_DIR}/test/test.pl --min-gen --make-cmd=gmake --vm=none --vm-max=2 --no-coverage --no-valgrind --module=command --test=backup
|
|
|
|
debug_script:
|
|
- ls -lah ${CIRRUS_WORKING_DIR}
|
|
|
|
# FreeBSD 13
|
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
freebsd_13_task:
|
|
freebsd_instance:
|
|
image_family: freebsd-13-0
|
|
cpu: 4
|
|
memory: 4G
|
|
|
|
install_script: pkg install -y bash git postgresql-libpqxx pkgconf libxml2 gmake perl5 libyaml p5-YAML-LibYAML rsync meson
|
|
|
|
script:
|
|
- cd .. && perl ${CIRRUS_WORKING_DIR}/test/test.pl --min-gen --make-cmd=gmake --vm=none --vm-max=2 --no-coverage --no-valgrind --module=command --test=backup
|
|
|
|
debug_script:
|
|
- ls -lah ${CIRRUS_WORKING_DIR}
|
|
|
|
# MacOS Monterey
|
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
macos_monterey_task:
|
|
osx_instance:
|
|
image: monterey-xcode
|
|
|
|
environment:
|
|
LDFLAGS: -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/libpq/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/libyaml/lib
|
|
CPPFLAGS: -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/libpq/include -I/usr/local/opt/libxml2/include/libxml2 -I/usr/local/opt/libyaml/include
|
|
PERL5LIB: /usr/local/opt/perl5/lib/perl5
|
|
PKG_CONFIG_PATH: /usr/local/opt/libpq/lib/pkgconfig:/usr/local/opt/openssl@1.1/lib/pkgconfig
|
|
|
|
install_script:
|
|
- brew install -q pkg-config openssl@1.1 libpq libxml2 libyaml cpanm meson
|
|
- cpanm --local-lib=/usr/local/opt/perl5 install YAML::XS
|
|
|
|
script:
|
|
- cd .. && ${CIRRUS_WORKING_DIR}/test/test.pl --min-gen --vm=none --vm-max=2 --no-coverage --no-valgrind --module=command --test=backup
|
|
|
|
debug_script:
|
|
- ls -lah ${CIRRUS_WORKING_DIR}
|