
This commit adds two test runners which build Postgres with make and meson, and run the basic regression tests. Tests are executed for every PR, and also every day using the latest pg_tde code.
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
name: postgresql-current-meson-debug
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: pg-current-meson-debug
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libreadline6-dev systemtap-sdt-dev \
|
|
zlib1g-dev libssl-dev libpam0g-dev bison flex \
|
|
libipc-run-perl -y docbook-xsl docbook-xsl libxml2 libxml2-utils \
|
|
libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev \
|
|
libsystemd-dev gettext tcl-dev libperl-dev pkg-config clang-11 \
|
|
llvm-11 llvm-11-dev libselinux1-dev python3-dev \
|
|
uuid-dev liblz4-dev meson ninja-build \
|
|
gpg wget libcurl4-openssl-dev libhttp-server-simple-perl
|
|
sudo /usr/bin/perl -MCPAN -e 'install IPC::Run'
|
|
sudo /usr/bin/perl -MCPAN -e 'install Text::Trim'
|
|
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
|
|
sudo apt update && sudo apt install -y vault
|
|
|
|
- name: Clone repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: 'src'
|
|
ref: ${{ github.ref }}
|
|
|
|
- name: Checkout submodules
|
|
run: |
|
|
git submodule update --init --recursive
|
|
cd contrib/pg_tde
|
|
git checkout main
|
|
git pull
|
|
working-directory: src
|
|
|
|
- name: Build postgres
|
|
run: |
|
|
meson setup build --prefix `pwd`/../inst --buildtype=debug -Dcassert=true -Dtap_tests=enabled
|
|
cd build && ninja && ninja install
|
|
working-directory: src
|
|
|
|
- name: Test postgres
|
|
run: |
|
|
TV=$(mktemp)
|
|
{ exec >$TV; vault server -dev; } &
|
|
sleep 10
|
|
export ROOT_TOKEN=$(cat $TV | grep "Root Token" | cut -d ":" -f 2 | xargs echo -n)
|
|
echo "Root token: $ROOT_TOKEN"
|
|
|
|
meson test
|
|
working-directory: src/build
|
|
|
|
- name: Report on test fail
|
|
uses: actions/upload-artifact@v4
|
|
if: ${{ failure() }}
|
|
with:
|
|
name: Regressions diff and postgresql log
|
|
path: |
|
|
src/build/testrun/
|
|
retention-days: 3
|