tomlplusplus/.circleci/config.yml
2020-01-11 23:52:07 +02:00

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