version: 2 jobs: debug_clang: docker: - image: marzer/cpp_dev:0.2.0 resource_class: large steps: - checkout - run: name: Installing dependencies command: | pip3 install --upgrade -r tools/requirements.txt - 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 external/tloptional - run: name: Building and testing with clang command: | update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-13 130 CXX_LD=lld CXX=clang++ meson build --buildtype=debug -Dpedantic=true -Dbuild_tests=true -Dbuild_examples=true -Dgenerate_cmake_config=false -Db_lto=false -Dasan_examples=true cd build && meson compile -j 4 && meson test --num-processes 1 --verbose release_clang: docker: - image: marzer/cpp_dev:0.2.0 resource_class: large steps: - checkout - run: name: Pulling submodules command: | git submodule update --init --depth 1 external/Catch2 external/tloptional - run: name: Building and testing with clang command: | update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-13 130 CXX_LD=lld CXX=clang++ meson build --buildtype=release -Dpedantic=true -Dbuild_tests=true -Dbuild_examples=true -Dgenerate_cmake_config=false -Db_lto=false -Dasan_examples=true cd build && meson compile -j 4 && meson test --num-processes 1 --verbose debug_gcc: docker: - image: marzer/cpp_dev:0.2.0 resource_class: large steps: - checkout - run: name: Pulling submodules command: | git submodule update --init --depth 1 external/Catch2 external/tloptional - run: name: Building and testing with gcc command: | update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-13 130 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.2.0 resource_class: large steps: - checkout - run: name: Pulling submodules command: | git submodule update --init --depth 1 external/Catch2 external/tloptional - run: name: Building and testing with gcc command: | update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-13 130 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.2.0 resource_class: small steps: - checkout - run: name: Installing dependencies command: | pip3 install --upgrade -r tools/requirements.txt - run: name: Generating documentation command: | cd docs && poxy --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