144 lines
5.1 KiB
YAML
144 lines
5.1 KiB
YAML
version: 2
|
|
|
|
jobs:
|
|
|
|
debug_clang:
|
|
docker:
|
|
- image: marzer/misc_cpp17_dev:0.2.0
|
|
resource_class: large
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Checking toml.hpp
|
|
command: |
|
|
cd python && python3 ci_single_header_check.py
|
|
- run:
|
|
name: Pulling submodules
|
|
command: |
|
|
git submodule update --init extern/Catch2
|
|
git submodule update --init extern/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/misc_cpp17_dev:0.2.0
|
|
resource_class: large
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Checking toml.hpp
|
|
command: |
|
|
cd python && python3 ci_single_header_check.py
|
|
- run:
|
|
name: Pulling submodules
|
|
command: |
|
|
git submodule update --init extern/Catch2
|
|
git submodule update --init extern/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/misc_cpp17_dev:0.2.0
|
|
resource_class: large
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Pulling submodules
|
|
command: |
|
|
git submodule update --init extern/Catch2
|
|
git submodule update --init extern/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/misc_cpp17_dev:0.2.0
|
|
resource_class: large
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Pulling submodules
|
|
command: |
|
|
git submodule update --init extern/Catch2
|
|
git submodule update --init extern/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/misc_cpp17_dev:0.2.0
|
|
resource_class: small
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Pulling submodules
|
|
command: |
|
|
git submodule update --init extern/mcss
|
|
- run:
|
|
name: Generating documentation
|
|
command: |
|
|
cd python && python3 generate_documentation.py
|
|
- 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
|