xlm escape #1788
This file contains hidden or 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: | |
- '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 |