@@ -388,6 +388,71 @@ jobs:
388
388
run : cmake --build build --target test_cmake_build
389
389
390
390
391
+ # Testing on ICX/ICPX, Intel's next-gen C/C++ compiler using the oneAPI apt repo
392
+ icc :
393
+ runs-on : ubuntu-20.04
394
+ strategy :
395
+ fail-fast : false
396
+
397
+ name : " 🐍 3 • ICPX latest • x64"
398
+
399
+ steps :
400
+ - uses : actions/checkout@v1
401
+
402
+ - name : Add apt repo
403
+ run : |
404
+ sudo apt-get update
405
+ sudo apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
406
+ wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
407
+ sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
408
+ echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
409
+ - name : Add ICC & Python 3
410
+ run : sudo apt-get update; sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp cmake python3-dev python3-numpy python3-pytest python3-pip
411
+
412
+ - name : Update pip
413
+ shell : bash
414
+ run : |
415
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
416
+ python3 -m pip install --upgrade pip
417
+ - name : Install dependencies
418
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
419
+ python3 -m pip install -r tests/requirements.txt --prefer-binary
420
+
421
+ - name : Configure
422
+ shell : bash
423
+ run : |
424
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
425
+ cmake -S . -B build \
426
+ -DPYBIND11_WERROR=ON \
427
+ -DDOWNLOAD_CATCH=ON \
428
+ -DDOWNLOAD_EIGEN=OFF \
429
+ -DCMAKE_CXX_STANDARD=11 \
430
+ -DCMAKE_CXX_COMPILER=$(which icpx) \
431
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
432
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
433
+ - name : Build
434
+ shell : bash
435
+ run : |
436
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
437
+ cmake --build build -j 2
438
+ - name : Python tests
439
+ shell : bash
440
+ run : |
441
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
442
+ sudo service apport stop
443
+ cmake --build build --target check
444
+ - name : C++ tests
445
+ shell : bash
446
+ run : |
447
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
448
+ cmake --build build --target cpptest
449
+ - name : Interface test
450
+ shell : bash
451
+ run : |
452
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
453
+ cmake --build build --target test_cmake_build
454
+
455
+
391
456
# Testing on CentOS (manylinux uses a centos base, and this is an easy way
392
457
# to get GCC 4.8, which is the manylinux1 compiler).
393
458
centos :
0 commit comments