Skip to content

xlm escape

xlm escape #1788

Workflow file for this run

name: ci
on:
push:
branches:
- 'v*'
jobs:
linux-gcc:
name: ✨ linux-gcc
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: uname
run: uname -a
- name: glibc
run: getconf GNU_LIBC_VERSION
- name: environment
run: env
- name: pre-defined preprocessor macros
run: gcc -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: g++ -E -v - < /dev/null
- name: bazel build
run: bazel build :all
- name: bazel run starter
run: ./bazel-bin/starter
- name: bazel run example h2unit.h
run: ./bazel-bin/example1
- name: bazel run example h2unit.hpp h2unit.cpp
run: ./bazel-bin/example2
- name: bazel run conformance
run: ./bazel-bin/template_function_argument_deduction
- name: configure example/debug
run: cmake -DCMAKE_BUILD_TYPE=Debug -B debug_example example
- name: build example/debug
run: cmake --build debug_example
- name: 🔨 run example/debug
run: ./debug_example/a.out
- name: 🔨 run example/debug pass
run: ./debug_example/a.out -i tag=pass
- name: 🔨 run example/debug fail
run: ./debug_example/a.out -i tag=fail
- name: show example/debug help
run: ./debug_example/a.out -h
- name: list example/debug cases
run: ./debug_example/a.out -l
- name: configure example/release
run: cmake -DCMAKE_BUILD_TYPE=Release -B release_example example
- name: build example/release
run: cmake --build release_example
- name: 🔨 run example/release
run: ./release_example/a.out
- name: 🔨 run example/release pass
run: ./release_example/a.out -i tag=pass
- name: 🔨 run example/release fail
run: ./release_example/a.out -i tag=fail
- name: show example/release help
run: ./release_example/a.out -h
- name: list example/release cases
run: ./release_example/a.out -l
- name: configure test/debug
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Debug -B debug_test test
- name: 🏗️ build test/debug
run: cmake --build debug_test -j2
- name: run test/debug without memory check
run: cd debug_test && LD_BIND_NOW=1 ./a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test/debug with memory check
run: cd debug_test && LD_BIND_NOW=1 ./a.out -sCpvxo -r -e h2_once
- name: configure test/release
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -B release_test test
- name: 🏗️ build test/release
run: cmake --build release_test -j2
- name: run test/release without memory check
run: cd release_test && LD_BIND_NOW=1 ./a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test/release with memory check
run: cd release_test && LD_BIND_NOW=1 ./a.out -sCpvxo -r -e h2_once
- name: configure testing
run: cd testing && cmake .
- name: 🏗️ build testing
run: cd testing && cmake --build . -j2
- name: run testing
run: cd testing && python test.py
- name: install coverage tools
run: pip3 install gcovr
- name: build and run example
run: cd example && sh ./build.sh
- name: show coverage report
run: python -m json.tool ./example/coverage.json
macos-clang:
name: ✨ macos-clang
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: uname
run: uname -a
- name: environment
run: env
- name: pre-defined preprocessor macros
run: clang -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: clang++ -E -v - < /dev/null
- name: configure example/debug
run: cmake -DCMAKE_BUILD_TYPE=Debug -B debug_example example
- name: build example/debug
run: cmake --build debug_example
- name: 🔨 run example/debug
run: ./debug_example/a.out
- name: 🔨 run example/debug pass
run: ./debug_example/a.out -i tag=pass
- name: 🔨 run example/debug fail
run: ./debug_example/a.out -i tag=fail
- name: show example/debug help
run: ./debug_example/a.out -h
- name: list example/debug cases
run: ./debug_example/a.out -l
- name: configure example/release
run: cmake -DCMAKE_BUILD_TYPE=Release -B release_example example
- name: build example/release
run: cmake --build release_example
- name: 🔨 run example/release
run: ./release_example/a.out
- name: 🔨 run example/release pass
run: ./release_example/a.out -i tag=pass
- name: 🔨 run example/release fail
run: ./release_example/a.out -i tag=fail
- name: show example/release help
run: ./release_example/a.out -h
- name: list example/release cases
run: ./release_example/a.out -l
- name: configure test/debug
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Debug -B debug_test test
- name: 🏗️ build test/debug
run: cmake --build debug_test -j2
- name: run test/debug without memory check
run: cd debug_test && LD_BIND_NOW=1 ./a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test/debug with memory check
run: cd debug_test && LD_BIND_NOW=1 ./a.out -sCpvxo -r -e h2_once
- name: configure test/release
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -B release_test test
- name: 🏗️ build test/release
run: cmake --build release_test -j2
- name: run test/release without memory check
run: cd release_test && LD_BIND_NOW=1 ./a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test/release with memory check
run: cd release_test && LD_BIND_NOW=1 ./a.out -sCpvxo -r -e h2_once
- name: configure testing
run: cd testing && cmake .
- name: 🏗️ build testing
run: cd testing && cmake --build . -j2
- name: run testing
run: cd testing && python test.py
- uses: seanmiddleditch/gha-setup-ninja@master
- name: ninja build
run: cd example && ninja
- name: ninja run
run: cd example && ./a.out
windows-msvc:
name: ✨ windows-msvc
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: ilammy/msvc-dev-cmd@v1
- name: environment
run: env
- name: pre-defined preprocessor macros
run: |
echo '' > empty.cpp
cl /EP /Zc:preprocessor /PD empty.cpp
- name: bazel build
run: bazel build --compilation_mode=dbg :all
- name: bazel run starter
run: ./bazel-bin/starter
- name: bazel run example h2unit.h
run: ./bazel-bin/example1
- name: bazel run example h2unit.hpp h2unit.cpp
run: ./bazel-bin/example2
- name: bazel run conformance
run: ./bazel-bin/template_function_argument_deduction
- name: configure example/debug
run: cmake -DCMAKE_BUILD_TYPE=Debug -B debug_example example
- name: build example/debug
run: cmake --build debug_example --config Debug
- name: 🔨 run example/debug
run: ./debug_example/Debug/a.out.exe
- name: 🔨 run example/debug pass
run: ./debug_example/Debug/a.out.exe -i tag=pass
- name: 🔨 run example/debug fail
run: ./debug_example/Debug/a.out.exe -i tag=fail
- name: show example/debug help
run: ./debug_example/Debug/a.out.exe -h
- name: list example/debug cases
run: ./debug_example/Debug/a.out.exe -l
- name: configure example/release
run: cmake -DCMAKE_BUILD_TYPE=Release -B release_example example
- name: build example/release
run: cmake --build release_example --config Release
- name: 🔨 run example/release
run: ./release_example/Release/a.out.exe
- name: 🔨 run example/release pass
run: ./release_example/Release/a.out.exe -i tag=pass
- name: 🔨 run example/release fail
run: ./release_example/Release/a.out.exe -i tag=fail
- name: show example/release help
run: ./release_example/Release/a.out.exe -h
- name: list example/release cases
run: ./release_example/Release/a.out.exe -l
- name: configure test/debug
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -B debug_test test
- name: cat test/debug vcxproj
run: cd debug_test && cat a.out.vcxproj
- name: 🏗️ build test/debug
run: cmake --build debug_test -j $env:NUMBER_OF_PROCESSORS
- name: run test/debug without memory check
run: cd debug_test && ./a.out.exe -s -p -m -v -x -e tag=memory_check
- name: ✨ run test/debug with memory check
run: cd debug_test && ./a.out.exe -sCpvxo -r -e h2_once
- name: configure test/release
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -B release_test test
- name: cat test/release vcxproj
run: cd release_test && cat a.out.vcxproj
- name: 🏗️ build test/release
run: cmake --build release_test --config Release -j $env:NUMBER_OF_PROCESSORS
- name: run test/release without memory check
run: cd release_test && ./a.out.exe -m -e tag=memory_check # fails
- name: ✨ run test/release with memory check
run: cd release_test && ./a.out.exe # fails
msys2:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include: # https://www.msys2.org/docs/environments
- {sys: cygwin, env: msys, pkg: "base-devel msys2-devel cmake"}
- {sys: mingw32, env: mingw32, pkg: "mingw-w64-i686-toolchain mingw-w64-i686-cmake mingw-w64-i686-ninja"}
- {sys: mingw64, env: mingw64, pkg: "mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja"}
- {sys: ucrt64, env: ucrt64, pkg: "mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja"}
- {sys: clang64, env: clang64, pkg: "mingw-w64-clang-x86_64-toolchain mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-ninja"}
name: windows-msys2-${{matrix.sys}}
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.env}}
update: true
install: ${{matrix.pkg}}
- name: check platform
run: uname -a && env
- name: pre-defined preprocessor macros
run: gcc -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: g++ -E -v - < /dev/null
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example -j2
- name: 🔨 run example
run: ./ci_example/a.out
- name: show example help
run: ./ci_example/a.out -h
- name: list example cases
run: ./ci_example/a.out -l
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Debug -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: run test without memory check
run: ./ci_test/a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: ./ci_test/a.out -sCpvxo
msvc:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- {arch: "x86", platform: 'Win32'}
- {arch: "x86_64", platform: 'x64'}
name: windows-${{matrix.arch}}-cmake-${{matrix.platform}}
steps:
- uses: actions/checkout@v2
- uses: ilammy/msvc-dev-cmd@v1
- name: check platform
run: env
- name: pre-defined preprocessor macros
run: |
echo '' > empty.cpp
cl /EP /Zc:preprocessor /PD empty.cpp
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -A ${{matrix.platform}} -B ci_example example
- name: build example
run: cmake --build ci_example --config Release
- name: 🔨 run example
run: ./ci_example/Release/a.out.exe
- name: show example help
run: ./ci_example/Release/a.out.exe -h
- name: list example cases
run: ./ci_example/Release/a.out.exe -l
- name: configure test
run: cd test && cmake -DCMAKE_VERBOSE_MAKEFILE=ON -A ${{matrix.platform}} .
- name: 🏗️ build test
run: cd test && cmake --build . -j $env:NUMBER_OF_PROCESSORS
- name: run test without memory check
run: cd test && ./a.out.exe -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: cd test && ./a.out.exe -sCpvxo
msbuild:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- {arch: "x86", platform: 'Win32'}
- {arch: "x86_64", platform: 'x64'}
name: windows-${{matrix.arch}}-msbuild-${{matrix.platform}}
steps:
- uses: actions/checkout@v2
- uses: ilammy/msvc-dev-cmd@v1
- name: check platform
run: env
- name: pre-defined preprocessor macros
run: |
echo '' > empty.cpp
cl /EP /Zc:preprocessor /PD empty.cpp
- uses: microsoft/setup-msbuild@v1.0.2
- name: check example.vcxproj
run: cd example && python ../build/vcxproj.py
- name: build example
run: cd example && msbuild example.vcxproj /property:Configuration=Debug /property:Platform=${{matrix.platform}}
- name: 🔨 run example
run: ./example/example.exe
- name: show example help
run: ./example/example.exe -h
- name: list example cases
run: ./example/example.exe -l
- name: configure a_dynamic_library
run: cd test/libs && cmake -A ${{matrix.platform}} .
- name: build a_dynamic_library
run: cd test/libs && cmake --build .
- name: check test.vcxproj
run: cd test && python ../build/vcxproj.py
- name: 🏗️ build test
run: cd test && msbuild test.vcxproj /property:Configuration=Debug /property:Platform=${{matrix.platform}} -maxcpucount:1
- name: run test without memory check
run: cd test && ./test.exe -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: cd test && ./test.exe -sCpvxo
linux-qemu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- {arch: aarch64, cl: gcc-arm64, cc: aarch64-linux-gnu-gcc, cxx: aarch64-linux-gnu-g++, cflag: "-march=armv8-a", pkg: "gcc-aarch64-linux-gnu g++-aarch64-linux-gnu"}
- {arch: i386, cl: gcc-m32, cc: gcc, cxx: g++, cflag: "-m32", pkg: "gcc-multilib g++-multilib"}
- {arch: i386, cl: clang-m32, cc: clang, cxx: clang++, cflag: "-m32", pkg: "gcc-multilib g++-multilib"}
name: linux-${{matrix.arch}}(qemu)-${{matrix.cl}}
steps:
- uses: actions/checkout@v2
- name: install toolchain and qemu-user
run: |
sudo apt-get update
sudo apt-get install qemu-user
sudo apt-get install ${{matrix.pkg}}
- name: check platform
run: uname -a && getconf GNU_LIBC_VERSION && env
- name: pre-defined preprocessor macros
run: ${{matrix.cxx}} ${{matrix.cflag}} -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: ${{matrix.cxx}} ${{matrix.cflag}} -E -v - < /dev/null
- name: configure example
run: cmake -DCMAKE_C_COMPILER="${{matrix.cc}}" -DCMAKE_CXX_COMPILER="${{matrix.cxx}}" -DCMAKE_C_FLAGS="${{matrix.cflag}}" -DCMAKE_CXX_FLAGS="${{matrix.cflag}}" -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example
- name: 🔨 run example
run: qemu-${{matrix.arch}} -L /usr/${{matrix.arch}}-linux-gnu ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_C_COMPILER="${{matrix.cc}}" -DCMAKE_CXX_COMPILER="${{matrix.cxx}}" -DCMAKE_C_FLAGS="${{matrix.cflag}}" -DCMAKE_CXX_FLAGS="${{matrix.cflag}}" -DCMAKE_VERBOSE_MAKEFILE=ON -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: run test without memory check
run: qemu-${{matrix.arch}} -L /usr/${{matrix.arch}}-linux-gnu -E LD_BIND_NOW=1 ./ci_test/a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: qemu-${{matrix.arch}} -L /usr/${{matrix.arch}}-linux-gnu -E LD_BIND_NOW=1 ./ci_test/a.out -sCpvxo
linux-m32:
runs-on: ubuntu-latest
env:
CC: ${{matrix.cc}}
CXX: ${{matrix.cxx}}
strategy:
fail-fast: false
matrix:
include:
- {cc: gcc, cxx: g++}
- {cc: clang, cxx: clang++}
name: linux-i386(x86_64)-${{matrix.cc}}-m32
steps:
- uses: actions/checkout@v2
- name: check platform
run: uname -a && getconf GNU_LIBC_VERSION && env
- name: install multilib
run: |
sudo apt-get update
sudo apt-get install gcc-multilib g++-multilib
- name: configure example
run: cmake -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example
- name: 🔨 run example
run: ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" -DCMAKE_VERBOSE_MAKEFILE=ON -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: run test without memory check
run: LD_BIND_NOW=1 ./ci_test/a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: LD_BIND_NOW=1 ./ci_test/a.out -sCpvxo
linux-x86_64:
runs-on: ${{matrix.os}}
env:
CC: ${{matrix.cc}}
CXX: ${{matrix.cxx}}
strategy:
fail-fast: false
matrix:
include: # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md ; https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
- {os: ubuntu-18.04, cc: gcc-5, cxx: g++-5, apt: true}
- {os: ubuntu-18.04, cc: gcc-6, cxx: g++-6, apt: true}
- {os: ubuntu-18.04, cc: gcc-7, cxx: g++-7, apt: false}
- {os: ubuntu-18.04, cc: gcc-8, cxx: g++-8, apt: true}
- {os: ubuntu-20.04, cc: gcc-9, cxx: g++-9, apt: false}
- {os: ubuntu-20.04, cc: gcc-10, cxx: g++-10, apt: false}
- {os: ubuntu-20.04, cc: gcc-11, cxx: g++-11, apt: true}
# http://www.gnu.org/software/gcc
- {os: ubuntu-18.04, cc: clang-7, cxx: clang++-7, apt: true}
- {os: ubuntu-18.04, cc: clang-8, cxx: clang++-8, apt: true}
- {os: ubuntu-18.04, cc: clang-9, cxx: clang++-9, apt: false}
- {os: ubuntu-20.04, cc: clang-10, cxx: clang++-10, apt: false}
- {os: ubuntu-20.04, cc: clang-11, cxx: clang++-11, apt: false}
- {os: ubuntu-20.04, cc: clang-12, cxx: clang++-12, apt: false}
# - {os: ubuntu-20.04, cc: clang-13, cxx: clang++-13, apt: true}
# https://releases.llvm.org/download.html
name: linux-x86_64-${{matrix.cc}}
steps:
- uses: actions/checkout@v2
- name: install ${{matrix.cc}} ${{matrix.cxx}}
if: ${{matrix.apt}}
run: |
sudo apt-get update
sudo apt-get install build-essential software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install ${{matrix.cc}} ${{matrix.cxx}}
- name: check platform
run: uname -a && getconf GNU_LIBC_VERSION && env
- name: pre-defined preprocessor macros
run: ${{matrix.cc}} -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: ${{matrix.cxx}} -E -v - < /dev/null
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example
- name: 🔨 run example
run: ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: run test without memory check
run: LD_BIND_NOW=1 ./ci_test/a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: LD_BIND_NOW=1 ./ci_test/a.out -sCpvxo
wsl:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include: # https://github.com/marketplace/actions/setup-wsl ; https://docs.microsoft.com/en-us/windows/wsl/install-win10
- {sys: Ubuntu, env: Ubuntu-20.04, pkg: "gcc g++"}
- {sys: Debian, env: Debian, pkg: "gcc g++"}
- {sys: Kali, env: kali-linux, pkg: "gcc g++"}
- {sys: openSUSE, env: openSUSE-Leap-15.2, pkg: "gcc gcc-c++"}
name: linux-wsl-${{matrix.sys}}
defaults:
run:
shell: wsl-bash {0}
steps:
- uses: actions/checkout@v2
- uses: Vampire/setup-wsl@v1
with:
distribution: ${{matrix.env}}
additional-packages: make cmake ${{matrix.pkg}}
- name: check platform
run: uname -a && getconf GNU_LIBC_VERSION && env
- name: pre-defined preprocessor macros
run: gcc -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: g++ -E -v - < /dev/null
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example
- name: 🔨 run example
run: ./ci_example/a.out
- name: show example help
run: ./ci_example/a.out -h
- name: list example cases
run: ./ci_example/a.out -l
- name: configure test
run: cd test && cmake -DCMAKE_VERBOSE_MAKEFILE=ON .
- name: 🏗️ build test
run: cd test && make
- name: run test without memory check
run: cd test && LD_BIND_NOW=1 ./a.out -s -p -m -v -x -e tag=memory_check tag=${{matrix.sys}}
- name: ✨ run test with memory check
run: cd test && LD_BIND_NOW=1 ./a.out -sCpvxo -e tag=${{matrix.sys}}
macos-xcode:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
include:
# - {os: macos-10.13, xcode: '8.3.3'} # deprecated
# - {os: macos-10.14, xcode: '9.4.1'} # deprecated
- {os: macos-10.15, xcode: '10.3'}
- {os: macos-10.15, xcode: '11.7'}
- {os: macos-10.15, xcode: '12.4'}
- {os: macos-11, xcode: '11.7'}
- {os: macos-11, xcode: '12.5'}
- {os: macos-11, xcode: '13.0'}
name: ${{matrix.os}}-xcode-${{matrix.xcode}}
steps:
- uses: actions/checkout@v2
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{matrix.xcode}}
- name: check platform
run: uname -a && env
- name: pre-defined preprocessor macros
run: clang -dM -E - < /dev/null
- name: sysroot directory for headers and libraries
run: clang++ -E -v - < /dev/null
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example
- name: 🔨 run example
run: ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: run test without memory check
run: LD_BIND_NOW=1 ./ci_test/a.out -s -p -m -v -x -e tag=memory_check
- name: ✨ run test with memory check
run: LD_BIND_NOW=1 ./ci_test/a.out -sCpvxo
cpp-gcc-linux:
runs-on: ubuntu-latest
env:
CC: gcc-11
CXX: g++-11
strategy:
fail-fast: false
matrix:
cpp: [11, 14, 17, 20, 23]
name: c++${{matrix.cpp}}-gcc-linux
steps:
- uses: actions/checkout@v2
- name: install gcc-11 g++-11
run: |
sudo apt-get update
sudo apt-get install build-essential software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-11 g++-11
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_example example
- name: build example
run: cmake --build ci_example --config Release
- name: 🔨 run example
run: ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: ✨ run test
run: ./ci_test/a.out -sCpvxo -e pthread
cpp-clang-linux:
runs-on: ubuntu-latest
env:
CC: clang-12
CXX: clang++-12
strategy:
fail-fast: false
matrix:
cpp: [11, 14, 17, 20, 23]
name: c++${{matrix.cpp}}-clang-linux
steps:
- uses: actions/checkout@v2
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_example example
- name: build example
run: cmake --build ci_example --config Release
- name: 🔨 run example
run: LD_BIND_NOW=1 ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: ✨ run test
run: LD_BIND_NOW=1 ./ci_test/a.out -sCpvxo -e pthread
cpp-xcode-macos:
runs-on: macos-11
strategy:
fail-fast: false
matrix:
cpp: [11, 14, 17, 20, 23]
name: c++${{matrix.cpp}}-xcode-macos
steps:
- uses: actions/checkout@v2
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 13.0
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_example example
- name: build example
run: cmake --build ci_example --config Release
- name: 🔨 run example
run: ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: ✨ run test
run: ./ci_test/a.out -sCpvxo -e pthread
cpp-msvc-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
cpp: [11, 14, 17, 20, 23]
name: c++${{matrix.cpp}}-msvc-windows
steps:
- uses: actions/checkout@v2
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_example example
- name: build example
run: cmake --build ci_example --config Release
- name: 🔨 run example
run: ./ci_example/Release/a.out.exe
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: ✨ run test
run: ./ci_test/a.out.exe -sCpvxo -e pthread
docker:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
# https://hub.docker.com/r/rikorose/gcc-cmake
- {image: "rikorose/gcc-cmake", ver: "gcc-5", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "gcc-6", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "gcc-7", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "gcc-8", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "gcc-9", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "gcc-10", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "gcc-11", cc: 'gcc', cxx: 'g++'}
- {image: "rikorose/gcc-cmake", ver: "latest", cc: 'gcc', cxx: 'g++'}
# https://hub.docker.com/r/silkeh/clang
- {image: "silkeh/clang", ver: "4", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "5", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "6", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "7", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "8", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "9", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "10", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "11", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "12", cc: 'clang', cxx: 'clang++'}
- {image: "silkeh/clang", ver: "latest", cc: 'clang', cxx: 'clang++'}
name: docker-${{matrix.cc}}-${{matrix.ver}}
container:
image: ${{matrix.image}}:${{matrix.ver}}
steps:
- uses: actions/checkout@v2
- name: ${{matrix.cxx}} version
run: ${{matrix.cxx}} --version
- name: configure example
run: cmake -DCMAKE_BUILD_TYPE=Release -B ci_example example
- name: build example
run: cmake --build ci_example --config Release
- name: 🔨 run example
run: LD_BIND_NOW=1 ./ci_example/a.out
- name: configure test
run: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -B ci_test test
- name: 🏗️ build test
run: cmake --build ci_test -j2
- name: ✨ run test
run: LD_BIND_NOW=1 ./ci_test/a.out -sCpvxo -e pthread