From 32d066989bb030953d333e29df56abb922860109 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Fri, 11 Jun 2021 13:17:31 +0200 Subject: [PATCH] add github actions CI inspired by travis/appveyor scripts --- .github/workflows/ci.yaml | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..5e3dfbe64 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,83 @@ +name: CI +on: [push, pull_request] + +jobs: + clang-format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: DoozyX/clang-format-lint-action@v0.12 + with: + exclude: './thirdparty' + clangFormatVersion: 12 + + build-ubuntu: + runs-on: ubuntu-latest + env: + dashboard_model: Experimental + build_type: Release + NUMBER_OF_PROCESSORS: 2 + CXX: ${{ matrix.CXX }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - name: build-ubuntu-gcc9 + CXX: g++-9 + - name: build-ubuntu-gcc10 + CXX: g++-10 + - name: build-ubuntu-clang10 + CXX: clang++-10 + - name: build-ubuntu-clang11 + CXX: clang++-11 + INSTALL_EXTRA: clang-11 + - name: build-ubuntu-icpc + CXX: icpc + INSTALL_ONEAPI: true + - name: build-ubuntu-icpx + CXX: icpx + INSTALL_ONEAPI: true + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: install OneAPI + if: ${{ matrix.INSTALL_ONEAPI }} + run: | + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" + sudo apt update + sudo apt install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic + - name: install extras + if: ${{ matrix.INSTALL_EXTRA }} + run: | + sudo apt update + sudo apt install ${{ matrix.INSTALL_EXTRA }} + - name: ctest + run: | + if [ ${{ matrix.INSTALL_ONEAPI }} ]; then source /opt/intel/oneapi/setvars.sh; fi + ctest -V -S test.cmake + + build-windows: + runs-on: windows-latest + env: + configuration: Release + subset: ${{ matrix.subset }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - name: build-windows-sse + subset: sse + - name: build-windows-avx + subset: avx + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: ctest + run: | + ctest -V -S test.cmake \ No newline at end of file