Skip to content

Commit c86a9ef

Browse files
committed
CI: Intel icc/icpc via oneAPI
Add testing for Intel icc/icpc via the oneAPI images. Intel oneAPI is in a late beta stage, currently shipping oneAPI beta09 with ICC 20.2.
1 parent d46f332 commit c86a9ef

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

.github/workflows/ci.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ jobs:
343343
- name: Interface test
344344
run: cmake3 --build build --target test_cmake_build
345345

346+
346347
# Testing on GCC using the GCC docker images (only recent images supported)
347348
gcc:
348349
runs-on: ubuntu-latest
@@ -392,6 +393,78 @@ jobs:
392393
run: cmake --build build --target test_cmake_build
393394

394395

396+
# Testing on ICC using the oneAPI apt repo
397+
icc:
398+
runs-on: ubuntu-latest
399+
strategy:
400+
fail-fast: false
401+
402+
name: "🐍 3 • ICC latest • x64"
403+
container: "gcc"
404+
405+
steps:
406+
- uses: actions/checkout@v1
407+
408+
- name: Add apt repo
409+
run: |
410+
apt-get update
411+
apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
412+
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
413+
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
414+
echo "deb https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list
415+
416+
- name: Add ICC & Python 3
417+
run: apt-get update; apt-get install -y intel-oneapi-dpcpp-cpp-compiler-pro intel-oneapi-python
418+
419+
- name: Update pip & pytest
420+
shell: bash
421+
run: |
422+
set +e; source /opt/intel/oneapi/setvars.sh; set -e
423+
python -m pip install --upgrade pip
424+
python -m pip install --upgrade pytest
425+
426+
- name: Setup CMake 3.18
427+
uses: jwlawson/actions-setup-cmake@v1.4
428+
with:
429+
cmake-version: 3.18
430+
431+
- name: Configure
432+
shell: bash
433+
run: |
434+
set +e; source /opt/intel/oneapi/setvars.sh; set -e
435+
cmake -S . -B build \
436+
-DPYBIND11_WERROR=ON \
437+
-DDOWNLOAD_CATCH=ON \
438+
-DDOWNLOAD_EIGEN=ON \
439+
-DCMAKE_CXX_STANDARD=11 \
440+
-DCMAKE_CXX_COMPILER=$(which icpc) \
441+
-DPYTHON_EXECUTABLE=$(python -c "import sys; print(sys.executable)")
442+
443+
- name: Build
444+
shell: bash
445+
run: |
446+
set +e; source /opt/intel/oneapi/setvars.sh; set -e
447+
cmake --build build -j 2
448+
449+
- name: Python tests
450+
shell: bash
451+
run: |
452+
set +e; source /opt/intel/oneapi/setvars.sh; set -e
453+
cmake --build build --target pytest
454+
455+
- name: C++ tests
456+
shell: bash
457+
run: |
458+
set +e; source /opt/intel/oneapi/setvars.sh; set -e
459+
cmake --build build --target cpptest
460+
461+
- name: Interface test
462+
shell: bash
463+
run: |
464+
set +e; source /opt/intel/oneapi/setvars.sh; set -e
465+
cmake --build build --target test_cmake_build
466+
467+
395468
# Testing on CentOS (manylinux uses a centos base, and this is an easy way
396469
# to get GCC 4.8, which is the manylinux1 compiler).
397470
centos:

0 commit comments

Comments
 (0)