105 lines
3.6 KiB
YAML
105 lines
3.6 KiB
YAML
version: 2.1
|
|
|
|
jobs:
|
|
linux_build:
|
|
docker:
|
|
- image: debian:bullseye
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Installing python
|
|
command: |
|
|
apt-get -qq update && apt-get install --upgrade -y python3
|
|
- run:
|
|
name: Checking toml.hpp
|
|
command: |
|
|
cd python && python3 ci_single_header_check.py
|
|
- run:
|
|
name: Installing dependencies
|
|
command: |
|
|
apt-get -qq update && apt-get install --upgrade -y git clang-9 g++-9 python3-pip ninja-build
|
|
pip3 install meson
|
|
git submodule update --init --recursive extern/Catch2
|
|
- run:
|
|
name: Building with clang
|
|
command: |
|
|
CXX=clang++-9 meson build-clang
|
|
cd build-clang && ninja -v -j 4
|
|
- run:
|
|
name: Building with gcc
|
|
command: |
|
|
CXX=g++-9 meson build-gcc
|
|
cd build-gcc && ninja -v -j 4
|
|
- run:
|
|
name: Running tests
|
|
command: |
|
|
cd build-clang && ninja test && cd ../build-gcc && ninja test
|
|
|
|
generate_dox:
|
|
docker:
|
|
- image: debian:bullseye
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Installing dependencies
|
|
command: |
|
|
apt-get -qq update && apt-get install --upgrade -y python3 python3-pip make cmake clang-9 flex bison git wget tar
|
|
pip3 install beautifulsoup4 jinja2 pygments html5lib
|
|
git submodule update --init extern/mcss
|
|
- run:
|
|
name: Building and installing Doxygen 1.8.17
|
|
command: |
|
|
wget http://doxygen.nl/files/doxygen-1.8.17.src.tar.gz
|
|
tar xvzf doxygen-1.8.17.src.tar.gz
|
|
rm doxygen-1.8.17.src.tar.gz
|
|
cd doxygen-1.8.17
|
|
CC=clang-9 CXX=clang++-9 cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -Wno-dev -Wno-deprecated
|
|
make install
|
|
- run:
|
|
name: Generating documentation
|
|
command: |
|
|
cd python && python3 generate_documentation.py
|
|
- persist_to_workspace:
|
|
root: docs
|
|
paths: html
|
|
|
|
deploy_dox:
|
|
docker:
|
|
- image: node:8.10.0
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: docs
|
|
- run:
|
|
name: Disable jekyll builds
|
|
command: |
|
|
touch docs/html/.nojekyll
|
|
- run:
|
|
name: Installing dependencies
|
|
command: |
|
|
npm install -g --silent gh-pages
|
|
git config user.email "ci-build@tomlplusplus.com"
|
|
git config user.name "ci-build"
|
|
- add_ssh_keys:
|
|
fingerprints:
|
|
- "a6:63:c0:a5:89:cf:2d:03:e7:c9:88:5d:c0:8c:39:e0"
|
|
- run:
|
|
name: Deploy docs to gh-pages branch
|
|
command: gh-pages --dotfiles --message "[skip ci] Updates" --dist docs/html
|
|
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
jobs:
|
|
- linux_build
|
|
- generate_dox:
|
|
requires:
|
|
- linux_build
|
|
filters:
|
|
branches:
|
|
only: master
|
|
- deploy_dox:
|
|
requires:
|
|
- generate_dox
|
|
|