name: linux with intel

on: [push, pull_request]

jobs:
  # Build with Intel toolchain
  intel-build:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-20.04]
        fc: [ifort]
        cc: [icc]

    env:
      FC: ${{ matrix.fc }}
      CC: ${{ matrix.cc }}
      FPM_COMPILER: ifort
      TZ: UTC+04:00
      APT_PACKAGES: >-
        intel-oneapi-compiler-fortran
        intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
        intel-oneapi-mkl-devel
        asciidoctor

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - uses: actions/setup-python@v1
      with:
        python-version: '3.x'

    - name: Add Intel repository
      run: |
        wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
        sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
        rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
        echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
        sudo apt-get update

    - name: Install Intel oneAPI compiler
      run: |
        sudo apt-get install ${{ env.APT_PACKAGES }}
        source /opt/intel/oneapi/setvars.sh
        printenv >> $GITHUB_ENV

    - name: Install fpm
      run: |
           echo $PATH
           pwd
           uname -a
           wget https://raw.githubusercontent.com/urbanjost/index/main/bootstrap/fpm.F90
           mkdir -p /home/runner/.local/bin
           ifort fpm.F90 -o /home/runner/.local/bin/fpm
           ls -l

    - name: Run Intel unit tests on Linux
      run: |
        printenv TZ
        printenv FPM_COMPILER
        printenv OMP_NUM_THREADS
        fpm test --profile release --compiler ifort
      env:
        OMP_NUM_THREADS: 2,1
