feat: install examples for top level builds #171
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: | |
push: | |
branches-ignore: | |
- "gh-pages" | |
paths: | |
- "**.h" | |
- "**.hpp" | |
- "**.cpp" | |
- "**.inl" | |
- "**.py" | |
- "**/meson.build" | |
- "**/workflows/**.yaml" | |
pull_request: | |
branches-ignore: | |
- "gh-pages" | |
paths: | |
- "**.h" | |
- "**.hpp" | |
- "**.cpp" | |
- "**.inl" | |
- "**.py" | |
- "**/meson.build" | |
- "**/workflows/**.yaml" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
clang_version: "14" | |
gcc_version: "11" | |
jobs: | |
linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: | |
- "clang" | |
- "gcc" | |
linker: | |
- "lld" | |
type: | |
- "debug" | |
- "release" | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Install base dependencies | |
run: | | |
sudo apt -y update | |
sudo apt -y install --no-install-recommends git python3 python3-pip ninja-build libstdc++-${{ env.gcc_version }}-dev locales-all | |
- uses: actions/checkout@v3 | |
- name: Install python dependencies | |
run: | | |
sudo -H pip3 install --no-cache-dir --upgrade meson | |
sudo -H pip3 install --no-cache-dir --upgrade -r tools/requirements.txt | |
- name: Check toml.hpp | |
run: | | |
cd tools | |
python3 ci_single_header_check.py | |
- name: Install lld | |
if: ${{ startsWith(matrix.linker, 'lld') }} | |
run: | | |
sudo apt -y install --no-install-recommends lld-${{ env.clang_version }} | |
sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-${{ env.clang_version }} 1000 | |
- name: Install clang | |
if: ${{ startsWith(matrix.compiler, 'clang') }} | |
run: | | |
sudo apt -y install --no-install-recommends clang-${{ env.clang_version }} | |
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${{ env.clang_version }} 1000 | |
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${{ env.clang_version }} 1000 | |
- name: Install gcc | |
if: ${{ startsWith(matrix.compiler, 'gcc') }} | |
run: | | |
sudo apt -y install --no-install-recommends gcc-${{ env.gcc_version }} g++-${{ env.gcc_version }} | |
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-${{ env.gcc_version }} 1000 | |
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-${{ env.gcc_version }} 1000 | |
- name: Configure locales | |
run: | | |
sudo locale-gen 'en_US.utf8' 'ja_JP.utf8' 'de_DE.utf8' 'it_IT.utf8' 'tr_TR.utf8' 'fi_FI.utf8' 'fr_FR.utf8' 'zh_CN.utf8' | |
- name: Configure Meson | |
run: | | |
CXX=c++ CXX_LD=${{ matrix.linker }} meson setup build --buildtype=${{ matrix.type }} -Ddevel=true -Db_lto=false | |
- name: Build | |
run: meson compile -C build | |
- name: Test | |
run: meson test -C build --verbose | |
windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
type: | |
- "debug" | |
- "release" | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: cmd | |
steps: | |
- name: Install dependencies | |
run: | | |
python3 -m pip install -U pip | |
pip3 install meson ninja | |
- uses: actions/checkout@v3 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Configure Meson | |
run: meson setup build --vsenv --buildtype=${{ matrix.type }} -Ddevel=true -Db_lto=false | |
- name: Build | |
run: meson compile -C build | |
- name: Test | |
run: meson test -C build --verbose | |
# tipi-build-linux: | |
# name: tipi.build project build and dependency resolution | |
# runs-on: ubuntu-latest | |
# if: github.ref == 'refs/heads/master' | |
# container: tipibuild/tipi-ubuntu | |
# | |
# env: | |
# HOME: /root | |
# | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - run: mkdir -p ~/.tipi | |
# | |
# # checking if the tomlplusplus project builds and passes tests | |
# - name: Build as project target linux-cxx17 (run tests 'odr_test_1' and 'main') | |
# run: tipi . --dont-upgrade --verbose -t linux-cxx17 --test "odr_test_1|main" | |
# | |
# - name: Build as project target linux-cxx20 (run tests 'odr_test_1' and 'main') | |
# run: tipi . --dont-upgrade --verbose -t linux-cxx20 --test "odr_test_1|main" | |
# | |
# - name: Cleanup project builds | |
# run: rm -r ./build | |
# | |
# - name: "Get branch name and save to env" | |
# env: | |
# IS_PR: ${{ github.EVENT_NAME == 'pull_request' }} | |
# run: | | |
# if ${IS_PR}; then | |
# BRANCH_NAME="${GITHUB_HEAD_REF}" | |
# else | |
# BRANCH_NAME="${GITHUB_REF##*/}" | |
# fi | |
# echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV | |
# | |
# # trying if pulling the dependency with tipi works properly | |
# - name: Build as dependency | |
# run: | | |
# cd examples/ | |
# | |
# # create test directory and copy the simple_parser.cpp in there | |
# mkdir test-as-dep | |
# cp examples.h test-as-dep/. | |
# cp simple_parser.cpp test-as-dep/. | |
# cd test-as-dep/ | |
# | |
# # create a deps file referencing the commit that triggered this build as dependency | |
# mkdir .tipi | |
# echo '{ "requires": { "${{ github.event.repository.full_name }}": { "@": "${{ env.BRANCH_NAME }}" } } }' > .tipi/deps | |
# | |
# # build | |
# tipi . --dont-upgrade --verbose -t linux-cxx17 | |
# ./build/linux-cxx17/bin/simple_parser ../example.toml |