tomlplusplus/.circleci/config.yml
Mark Gillard 53f29d9365 restructuring and minor refactoring
There's no new functionality here. It's purely tooling + CI stuff:
- moved `python` => `tools`
- moved documentation images to subfolder
- moved `vs/tests` to tests/vs projects
- moved `vs` solution etc to root
- added semicolons to macros
- added cpp.hint to help VS intellisense
- migrated documentation generation to external lib
2021-04-18 22:58:41 +03:00

148 lines
5.3 KiB
YAML

version: 2
jobs:
debug_clang:
docker:
- image: marzer/cpp_dev:0.1.0
resource_class: large
steps:
- checkout
- run:
name: Checking toml.hpp
command: |
cd tools && python3 ci_single_header_check.py
- run:
name: Pulling submodules
command: |
git submodule update --init --depth 1 external/Catch2
git submodule update --init --depth 1 external/tloptional
- run:
name: Building and testing with clang
command: |
CXX_LD=lld CXX=clang++ meson build --buildtype=debug -Dpedantic=true -Dbuild_tests=true -Dbuild_examples=true -Dgenerate_cmake_config=false -Db_lto=false
cd build && meson compile -j 4 && meson test --num-processes 1 --verbose
release_clang:
docker:
- image: marzer/cpp_dev:0.1.0
resource_class: large
steps:
- checkout
- run:
name: Checking toml.hpp
command: |
cd tools && python3 ci_single_header_check.py
- run:
name: Pulling submodules
command: |
git submodule update --init --depth 1 external/Catch2
git submodule update --init --depth 1 external/tloptional
- run:
name: Building and testing with clang
command: |
CXX_LD=lld CXX=clang++ meson build --buildtype=release -Dpedantic=true -Dbuild_tests=true -Dbuild_examples=true -Dgenerate_cmake_config=false -Db_lto=false
cd build && meson compile -j 4 && meson test --num-processes 1 --verbose
debug_gcc:
docker:
- image: marzer/cpp_dev:0.1.0
resource_class: large
steps:
- checkout
- run:
name: Pulling submodules
command: |
git submodule update --init --depth 1 external/Catch2
git submodule update --init --depth 1 external/tloptional
- run:
name: Building and testing with gcc
command: |
CXX_LD=lld CXX=g++ meson build --buildtype=debug -Dpedantic=true -Dbuild_tests=true -Dbuild_examples=true -Dgenerate_cmake_config=false -Db_lto=false
cd build && meson compile -j 4 && meson test --num-processes 1 --verbose
release_gcc:
docker:
- image: marzer/cpp_dev:0.1.0
resource_class: large
steps:
- checkout
- run:
name: Pulling submodules
command: |
git submodule update --init --depth 1 external/Catch2
git submodule update --init --depth 1 external/tloptional
- run:
name: Building and testing with gcc
command: |
CXX_LD=lld CXX=g++ meson build --buildtype=release -Dpedantic=true -Dbuild_tests=true -Dbuild_examples=true -Dgenerate_cmake_config=false -Db_lto=false
cd build && meson compile -j 4 && meson test --num-processes 1 --verbose
generate_dox:
docker:
- image: marzer/cpp_dev:0.1.0
resource_class: small
steps:
- checkout
- run:
name: Pulling submodules
command: |
git submodule update --init --depth 1 --recursive external/dox
- run:
name: Installing dependencies
command: |
pip3 install --upgrade -r external/dox/requirements.txt
- run:
name: Generating documentation
command: |
cd docs && python3 ../external/dox --verbose
- persist_to_workspace:
root: docs
paths: html
deploy_dox:
docker:
- image: node:14.4.0
resource_class: small
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@3.0.0
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:
- debug_clang
- release_clang
- debug_gcc
- release_gcc
- generate_dox:
requires:
- debug_clang
- release_clang
- debug_gcc
- release_gcc
filters:
branches:
only: master
- deploy_dox:
requires:
- generate_dox