Skip to content

Merge branch 'main' of https://github.com/taocpp/taopq #632

Merge branch 'main' of https://github.com/taocpp/taopq

Merge branch 'main' of https://github.com/taocpp/taopq #632

Workflow file for this run

name: Linux
on:
push:
paths-ignore:
- 'README.md'
- 'doc/**'
pull_request:
paths-ignore:
- 'README.md'
- 'doc/**'
jobs:
linux-next:
strategy:
matrix:
compiler:
- g++-13
- g++-14
- g++-15
- g++-16
- clang++-18
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
CXX: ${{ matrix.compiler }}
TAOPQ_TEST_DATABASE: host=localhost dbname=postgres user=postgres password=postgres
steps:
- uses: actions/checkout@v5
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libpq-dev libc++-dev
version: 2.0
- name: Install GCC-15
if: matrix.compiler == 'g++-15'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y g++-15
- name: Install GCC-16
if: matrix.compiler == 'g++-16'
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y g++-16
- name: Configure CMake Project
run: cmake --preset unixlike-release-dev -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/taopq-install
- name: Build project files
run: cmake --build --preset unixlike-release-dev
- name: Run tests
run: cmake --build --preset unixlike-release-dev --target test
- name: Run examples
run: cmake --build --preset unixlike-release-dev --target examples
env:
PGDATABASE: ${{ env.TAOPQ_TEST_DATABASE }}
- name: Install Taocpp TaoPQ
run: cmake --build --preset unixlike-release-dev --target install
linux-gcc-old-abi:
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
CXX: g++
TAOPQ_TEST_DATABASE: host=localhost dbname=postgres user=postgres password=postgres
steps:
- uses: actions/checkout@v5
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libpq-dev libc++-dev
version: 2.0
- name: Configure CMake Project
run: cmake --preset unixlike-release-dev -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/taopq-install -DCMAKE_CXX_FLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
- name: Build project files
run: cmake --build --preset unixlike-release-dev
- name: Run tests
run: cmake --build --preset unixlike-release-dev --target test
linux-clang-extra:
strategy:
matrix:
flags: ["-stdlib=libc++","-fms-extensions"]
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
CXX: clang++
TAOPQ_TEST_DATABASE: host=localhost dbname=postgres user=postgres password=postgres
steps:
- uses: actions/checkout@v5
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libpq-dev libc++-dev
version: 2.0
- name: Configure CMake Project
run: cmake --preset unixlike-release-dev -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/taopq-install -DCMAKE_CXX_FLAGS="${{ matrix.flags }}"
- name: Build project files
run: cmake --build --preset unixlike-release-dev
- name: Run tests
run: cmake --build --preset unixlike-release-dev --target test
linux-makefile:
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
TAOPQ_TEST_DATABASE: host=localhost dbname=postgres user=postgres password=postgres
CXX: g++-13
steps:
- uses: actions/checkout@v5
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libpq-dev libc++-dev
version: 2.0
- name: Build project files with Makefile
run: make -j$(nproc)
- name: Run tests with Makefile
run: make test
env:
PGDATABASE: ${{ env.TAOPQ_TEST_DATABASE }}