diff options
Diffstat (limited to 'deps/inja/.github/workflows/ci.yml')
-rw-r--r-- | deps/inja/.github/workflows/ci.yml | 261 |
1 files changed, 261 insertions, 0 deletions
diff --git a/deps/inja/.github/workflows/ci.yml b/deps/inja/.github/workflows/ci.yml new file mode 100644 index 0000000..c5909c3 --- /dev/null +++ b/deps/inja/.github/workflows/ci.yml @@ -0,0 +1,261 @@ +# Based on: https://github.com/onqtam/doctest/blob/master/.github/workflows/main.yml + +name: CI + +on: [push, pull_request] + +jobs: + ci: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + + env: + CMAKE_GENERATOR: Ninja + + strategy: + fail-fast: false + matrix: + name: [ + ubuntu-18.04-gcc-4.9, + ubuntu-18.04-gcc-5, + ubuntu-18.04-gcc-6, + ubuntu-18.04-gcc-7, + ubuntu-18.04-gcc-8, + ubuntu-18.04-gcc-9, + ubuntu-18.04-clang-3.5, + ubuntu-18.04-clang-3.8, + ubuntu-18.04-clang-4.0, + ubuntu-18.04-clang-5.0, + ubuntu-18.04-clang-6.0, + ubuntu-18.04-clang-7, + ubuntu-18.04-clang-8, + ubuntu-20.04-clang-9, + windows-2016-cl, + windows-2016-clang-cl, + windows-2016-clang, + windows-2016-gcc, + windows-2019-cl, + windows-2019-clang-cl, + windows-2019-clang, + windows-2019-gcc, + macOS-10.15-gcc-7, + macOS-10.15-gcc-8, + macOS-10.15-gcc-9, + macOS-latest-xcode-11.3, + macOS-latest-xcode-12.2, + ] + + include: + - name: ubuntu-18.04-gcc-4.9 + os: ubuntu-18.04 + compiler: gcc + version: "4.9" + + - name: ubuntu-18.04-gcc-5 + os: ubuntu-18.04 + compiler: gcc + version: "5" + + - name: ubuntu-18.04-gcc-6 + os: ubuntu-18.04 + compiler: gcc + version: "6" + + - name: ubuntu-18.04-gcc-7 + os: ubuntu-18.04 + compiler: gcc + version: "7" + + - name: ubuntu-18.04-gcc-8 + os: ubuntu-18.04 + compiler: gcc + version: "8" + + - name: ubuntu-18.04-gcc-9 + os: ubuntu-18.04 + compiler: gcc + version: "9" + + - name: ubuntu-18.04-clang-3.5 + os: ubuntu-18.04 + compiler: clang + version: "3.5" + + - name: ubuntu-18.04-clang-3.8 + os: ubuntu-18.04 + compiler: clang + version: "3.8" + + - name: ubuntu-18.04-clang-4.0 + os: ubuntu-18.04 + compiler: clang + version: "4.0" + + - name: ubuntu-18.04-clang-5.0 + os: ubuntu-18.04 + compiler: clang + version: "5.0" + + - name: ubuntu-18.04-clang-6.0 + os: ubuntu-18.04 + compiler: clang + version: "6.0" + + - name: ubuntu-18.04-clang-7 + os: ubuntu-18.04 + compiler: clang + version: "7" + + - name: ubuntu-18.04-clang-8 + os: ubuntu-18.04 + compiler: clang + version: "8" + + - name: ubuntu-20.04-clang-9 + os: ubuntu-20.04 + compiler: clang + version: "9" + + - name: windows-2016-cl + os: windows-2016 + compiler: cl + + - name: windows-2016-clang-cl + os: windows-2016 + compiler: clang-cl + + - name: windows-2016-clang + os: windows-2016 + compiler: clang + + - name: windows-2019-cl + os: windows-2019 + compiler: cl + + - name: windows-2016-gcc + os: windows-2016 + compiler: gcc + + - name: windows-2019-clang-cl + os: windows-2019 + compiler: clang-cl + + - name: windows-2019-clang + os: windows-2019 + compiler: clang + + - name: windows-2019-gcc + os: windows-2019 + compiler: gcc + + - name: macOS-10.15-gcc-7 + os: macOS-10.15 + compiler: gcc + version: "7" + + - name: macOS-10.15-gcc-8 + os: macOS-10.15 + compiler: gcc + version: "8" + + - name: macOS-10.15-gcc-9 + os: macOS-10.15 + compiler: gcc + version: "9" + + - name: macOS-latest-xcode-11.3 + os: macOS-latest + compiler: xcode + version: "11.3" + + - name: macOS-latest-xcode-12.2 + os: macOS-latest + compiler: xcode + version: "12.2" + + steps: + - uses: actions/checkout@v1 + + - name: Install (Linux) + if: runner.os == 'Linux' + run: | + # Required for libc6-dbg:i386 and g++-multilib packages which are + # needed for x86 builds. + sudo dpkg --add-architecture i386 + # clang-3.7 and earlier are not available in Bionic anymore so we get + # them from the Xenial repositories instead. + sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main" + sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe" + + sudo apt-get update + # libc6-dbg:i386 is required for running valgrind on x86. + sudo apt-get install -y ninja-build valgrind libc6-dbg:i386 -o APT::Immediate-Configure=0 + if [ "${{ matrix.compiler }}" = "gcc" ]; then + sudo apt-get install -y g++-${{ matrix.version }} g++-${{ matrix.version }}-multilib + echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV + echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV + else + sudo apt-get install -y clang-${{ matrix.version }} g++-multilib + echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV + echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV + fi + + - name: Install (macOS) + if: runner.os == 'macOS' + run: | + brew install ninja + if [ "${{ matrix.compiler }}" = "gcc" ]; then + brew install gcc@${{ matrix.version }} + brew link gcc@${{ matrix.version }} + echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV + echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV + else + sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app + echo "CC=clang" >> $GITHUB_ENV + echo "CXX=clang++" >> $GITHUB_ENV + fi + + - name: Install (Windows) + if: runner.os == 'Windows' + shell: powershell + run: | + Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') + scoop install ninja --global + if ("${{ matrix.compiler }}".StartsWith("clang")) { + scoop install llvm --global + } + if ("${{ matrix.compiler }}" -eq "gcc") { + # Chocolatey GCC is broken on the windows-2019 image. + # See: https://github.com/DaanDeMeyer/doctest/runs/231595515 + # See: https://github.community/t5/GitHub-Actions/Something-is-wrong-with-the-chocolatey-installed-version-of-gcc/td-p/32413 + # scoop install gcc --global + choco install mingw + echo "CC=gcc" >> $GITHUB_ENV + echo "CXX=g++" >> $GITHUB_ENV + } elseif ("${{ matrix.compiler }}" -eq "clang") { + echo "CC=clang" >> $GITHUB_ENV + echo "CXX=clang++" >> $GITHUB_ENV + } else { + echo "CC=${{ matrix.compiler }}" >> $GITHUB_ENV + echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV + } + # Scoop modifies the PATH so we make the modified PATH global. + echo "PATH=$env:PATH" >> $GITHUB_ENV + + - name: Configure + if: runner.os == 'Windows' + run: .github\workflows\vsenv.bat -arch=x64 -host_arch=x64 + + - name: Build & Test Debug + run: | + cmake -E remove_directory build + cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug + cmake --build build -j2 + cd build && ctest -j2 --output-on-failure + + - name: Build & Test Release + run: | + cmake -E remove_directory build + cmake -B build -S . -DCMAKE_BUILD_TYPE=Release + cmake --build build -j2 + cd build && ctest -j2 --output-on-failure |