120 lines
2.4 KiB
YAML
120 lines
2.4 KiB
YAML
################
|
|
# Config
|
|
################
|
|
|
|
# C++ project
|
|
language: cpp
|
|
|
|
dist: trusty
|
|
sudo: required
|
|
group: edge
|
|
|
|
|
|
################
|
|
# Services
|
|
################
|
|
|
|
services:
|
|
- docker
|
|
|
|
################
|
|
# Build matrix
|
|
################
|
|
|
|
matrix:
|
|
include:
|
|
|
|
################
|
|
# Linux / GCC
|
|
################
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- COMPILER_PACKAGE=g++-7
|
|
- C_COMPILER=gcc-7
|
|
- CXX_COMPILER=g++-7
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- COMPILER_PACKAGE=g++-8
|
|
- C_COMPILER=gcc-8
|
|
- CXX_COMPILER=g++-8
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- COMPILER_PACKAGE=g++-9
|
|
- C_COMPILER=gcc-9
|
|
- CXX_COMPILER=g++-9
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- COMPILER_PACKAGE=g++-10
|
|
- C_COMPILER=gcc-10
|
|
- CXX_COMPILER=g++-10
|
|
|
|
|
|
################
|
|
# Linux / Clang
|
|
################
|
|
|
|
- os: linux
|
|
env:
|
|
- COMPILER_PACKAGE=clang-7
|
|
- C_COMPILER=clang-7
|
|
- CXX_COMPILER=clang++-7
|
|
|
|
- os: linux
|
|
env:
|
|
- COMPILER_PACKAGE=clang-8
|
|
- C_COMPILER=clang-8
|
|
- CXX_COMPILER=clang++-8
|
|
|
|
- os: linux
|
|
env:
|
|
- COMPILER_PACKAGE=clang-9
|
|
- C_COMPILER=clang-9
|
|
- CXX_COMPILER=clang++-9
|
|
|
|
- os: linux
|
|
env:
|
|
- COMPILER_PACKAGE=clang-10
|
|
- C_COMPILER=clang-10
|
|
- CXX_COMPILER=clang++-10
|
|
|
|
before_install:
|
|
|
|
# Show OS/compiler version (this may not be the same OS as the Docker container)
|
|
- uname -a
|
|
|
|
# Use an artful container - gives us access to latest compilers.
|
|
- docker run -e "DEBIAN_FRONTEND=noninteractive" -d --name ubuntu-test-container -v $(pwd):/travis ubuntu:focal tail -f /dev/null
|
|
- docker ps
|
|
|
|
|
|
install:
|
|
|
|
# Create our container
|
|
- docker exec -t ubuntu-test-container bash -c "apt-get update -y &&
|
|
apt-get --no-install-recommends install -y software-properties-common cmake
|
|
ninja-build libboost-all-dev libev-dev libuv1-dev ninja-build libssl-dev $COMPILER_PACKAGE &&
|
|
apt-get -y clean && rm -rf /var/lib/apt/lists/*"
|
|
|
|
################
|
|
# Build / Test
|
|
################
|
|
|
|
script:
|
|
|
|
# Run the container that we created and build the code
|
|
- docker exec -t ubuntu-test-container bash -c "cd /travis &&
|
|
export CC=/usr/bin/$C_COMPILER &&
|
|
export CXX=/usr/bin/$CXX_COMPILER &&
|
|
mkdir build.release && cd build.release &&
|
|
cmake ${CMAKE_OPTIONS} -DAMQP-CPP_BUILD_EXAMPLES=ON -DAMQP-CPP_LINUX_TCP=ON --config Release -GNinja .. &&
|
|
cmake --build . &&
|
|
cd .."
|