diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4e36ed9..c66ad87 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,88 +3,88 @@ name: build on: [push, pull_request] jobs: -# build-linux-gcc: -# runs-on: Ubuntu-18.04 -# strategy: -# matrix: -# # g++-4.8 and 4.9 are tested on Travis.CI. -# compiler: ['g++-9', 'g++-8', 'g++-7', 'g++-6', 'g++-5'] -# standard: ['11', '14', '17', '20'] -# exclude: -# - {compiler: 'g++-5', standard: '17'} -# - {compiler: 'g++-6', standard: '17'} -# - {compiler: 'g++-5', standard: '20'} -# - {compiler: 'g++-6', standard: '20'} -# - {compiler: 'g++-7', standard: '20'} -# steps: -# - name: Checkout -# uses: actions/checkout@v2 -# with: -# submodules: true -# - name: Install -# run: | -# sudo apt-add-repository ppa:mhier/libboost-latest -# sudo apt-get update -# sudo apt-get install boost1.70 -# if [[ "${{ matrix.compiler }}" == "g++-6" || "${{ matrix.compiler }}" == "g++-5" ]] ; then -# sudo apt-add-repository ppa:ubuntu-toolchain-r/test -# sudo apt-get update -# sudo apt-get install ${{ matrix.compiler }} -# fi -# - name: Configure -# run: | -# mkdir build && cd build -# if [[ "${{ matrix.compiler }}" == "g++-8" && ( "${{ matrix.standard }}" == "17" || "${{ matrix.standard }}" == "20" ) ]] ; then -# cmake .. -Dtoml11_BUILD_TEST=ON -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_REQUIRE_FILESYSTEM_LIBRARY=ON -# else -# cmake .. -Dtoml11_BUILD_TEST=ON -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -# fi -# - name: Build -# run: | -# cd build && cmake --build . -# - name: Test -# run: | -# cd build && ctest --output-on-failure -# build-linux-clang: -# runs-on: Ubuntu-18.04 -# strategy: -# matrix: -# compiler: ['10', '9', '8', '7', '6.0', '5.0', '4.0', '3.9'] -# standard: ['11', '14', '17', '20'] -# exclude: -# - {compiler: '3.9', standard: '17'} -# - {compiler: '4.0', standard: '17'} -# - {compiler: '5.0', standard: '17'} -# - {compiler: '3.9', standard: '20'} -# - {compiler: '4.0', standard: '20'} -# - {compiler: '5.0', standard: '20'} -# - {compiler: '6.0', standard: '20'} -# - {compiler: '7', standard: '20'} -# steps: -# - name: Checkout -# uses: actions/checkout@v2 -# with: -# submodules: true -# - name: Install -# run: | -# sudo apt-add-repository ppa:mhier/libboost-latest -# sudo apt-get update -# sudo apt-get install boost1.70 -# if [[ "${{ matrix.compiler }}" != "6" && "${{ matrix.compiler }}" != "8" && "${{ matrix.compiler }}" != "9" ]] ; then -# sudo apt-add-repository ppa:ubuntu-toolchain-r/test -# sudo apt-get update -# sudo apt-get install clang-${{ matrix.compiler }} -# fi -# - name: Configure -# run: | -# mkdir build && cd build -# cmake .. -Dtoml11_BUILD_TEST=ON -DCMAKE_C_COMPILER=clang-${{ matrix.compiler }} -DCMAKE_CXX_COMPILER=clang++-${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -# - name: Build -# run: | -# cd build && cmake --build . -# - name: Test -# run: | -# cd build && ctest --output-on-failure + build-linux-gcc: + runs-on: Ubuntu-18.04 + strategy: + matrix: + # g++-4.8 and 4.9 are tested on Travis.CI. + compiler: ['g++-9', 'g++-8', 'g++-7', 'g++-6', 'g++-5'] + standard: ['11', '14', '17', '20'] + exclude: + - {compiler: 'g++-5', standard: '17'} + - {compiler: 'g++-6', standard: '17'} + - {compiler: 'g++-5', standard: '20'} + - {compiler: 'g++-6', standard: '20'} + - {compiler: 'g++-7', standard: '20'} + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-add-repository ppa:mhier/libboost-latest + sudo apt-get update + sudo apt-get install boost1.70 + if [[ "${{ matrix.compiler }}" == "g++-6" || "${{ matrix.compiler }}" == "g++-5" ]] ; then + sudo apt-add-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get install ${{ matrix.compiler }} + fi + - name: Configure + run: | + mkdir build && cd build + if [[ "${{ matrix.compiler }}" == "g++-8" && ( "${{ matrix.standard }}" == "17" || "${{ matrix.standard }}" == "20" ) ]] ; then + cmake .. -Dtoml11_BUILD_TEST=ON -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_REQUIRE_FILESYSTEM_LIBRARY=ON + else + cmake .. -Dtoml11_BUILD_TEST=ON -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} + fi + - name: Build + run: | + cd build && cmake --build . + - name: Test + run: | + cd build && ctest --output-on-failure + build-linux-clang: + runs-on: Ubuntu-18.04 + strategy: + matrix: + compiler: ['10', '9', '8', '7', '6.0', '5.0', '4.0', '3.9'] + standard: ['11', '14', '17', '20'] + exclude: + - {compiler: '3.9', standard: '17'} + - {compiler: '4.0', standard: '17'} + - {compiler: '5.0', standard: '17'} + - {compiler: '3.9', standard: '20'} + - {compiler: '4.0', standard: '20'} + - {compiler: '5.0', standard: '20'} + - {compiler: '6.0', standard: '20'} + - {compiler: '7', standard: '20'} + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-add-repository ppa:mhier/libboost-latest + sudo apt-get update + sudo apt-get install boost1.70 + if [[ "${{ matrix.compiler }}" != "6" && "${{ matrix.compiler }}" != "8" && "${{ matrix.compiler }}" != "9" ]] ; then + sudo apt-add-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get install clang-${{ matrix.compiler }} + fi + - name: Configure + run: | + mkdir build && cd build + cmake .. -Dtoml11_BUILD_TEST=ON -DCMAKE_C_COMPILER=clang-${{ matrix.compiler }} -DCMAKE_CXX_COMPILER=clang++-${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} + - name: Build + run: | + cd build && cmake --build . + - name: Test + run: | + cd build && ctest --output-on-failure build-osx: runs-on: macos-10.15 @@ -110,42 +110,42 @@ jobs: run: | cd build && ctest --output-on-failure -# build-windows-msvc: -# runs-on: windows-2019 -# strategy: -# matrix: -# standard: ['11', '14', '17', '20'] -# config: ['Release', 'Debug'] -# steps: -# - name: Checkout -# uses: actions/checkout@v2 -# with: -# submodules: true -# - name: Install -# run: | -# (New-Object System.Net.WebClient).DownloadFile("https://github.com/actions/boost-versions/releases/download/1.72.0-20200608.4/boost-1.72.0-win32-msvc14.2-x86_64.tar.gz", "$env:TEMP\\boost.tar.gz") -# 7z.exe x "$env:TEMP\\boost.tar.gz" -o"$env:TEMP\\boostArchive" -y | Out-Null -# 7z.exe x "$env:TEMP\\boostArchive" -o"$env:TEMP\\boost" -y | Out-Null -# Push-Location -Path "$env:TEMP\\boost" -# Invoke-Expression .\\setup.ps1 -# - uses: ilammy/msvc-dev-cmd@v1 -# - name: Configure -# shell: cmd -# run: | -# file --mime-encoding tests/test_literals.cpp -# mkdir build -# cd build -# cmake ../ -G "NMake Makefiles" -Dtoml11_BUILD_TEST=ON -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DBoost_NO_BOOST_CMAKE=ON -DBOOST_ROOT="C:\\hostedtoolcache\\windows\\Boost\\1.72.0\\x86_64" -# - name: Build -# working-directory: ./build -# run: | -# cmake --build . --config "${{ matrix.config }}" -# - name: Test -# working-directory: ./build -# run: | -# ./tests/test_literals --log_level=all -# file --mime-encoding tests/toml/tests/example.toml -# file --mime-encoding tests/toml/tests/fruit.toml -# file --mime-encoding tests/toml/tests/hard_example.toml -# file --mime-encoding tests/toml/tests/hard_example_unicode.toml -# ctest --build-config "${{ matrix.config }}" --output-on-failure + build-windows-msvc: + runs-on: windows-2019 + strategy: + matrix: + standard: ['11', '14', '17', '20'] + config: ['Release', 'Debug'] + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + (New-Object System.Net.WebClient).DownloadFile("https://github.com/actions/boost-versions/releases/download/1.72.0-20200608.4/boost-1.72.0-win32-msvc14.2-x86_64.tar.gz", "$env:TEMP\\boost.tar.gz") + 7z.exe x "$env:TEMP\\boost.tar.gz" -o"$env:TEMP\\boostArchive" -y | Out-Null + 7z.exe x "$env:TEMP\\boostArchive" -o"$env:TEMP\\boost" -y | Out-Null + Push-Location -Path "$env:TEMP\\boost" + Invoke-Expression .\\setup.ps1 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Configure + shell: cmd + run: | + file --mime-encoding tests/test_literals.cpp + mkdir build + cd build + cmake ../ -G "NMake Makefiles" -Dtoml11_BUILD_TEST=ON -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DBoost_NO_BOOST_CMAKE=ON -DBOOST_ROOT="C:\\hostedtoolcache\\windows\\Boost\\1.72.0\\x86_64" + - name: Build + working-directory: ./build + run: | + cmake --build . --config "${{ matrix.config }}" + - name: Test + working-directory: ./build + run: | + ./tests/test_literals --log_level=all + file --mime-encoding tests/toml/tests/example.toml + file --mime-encoding tests/toml/tests/fruit.toml + file --mime-encoding tests/toml/tests/hard_example.toml + file --mime-encoding tests/toml/tests/hard_example_unicode.toml + ctest --build-config "${{ matrix.config }}" --output-on-failure