name: ubuntu-latest-icc-ci

on:
  workflow_dispatch:

  push:
    branches:
      - master
      - feature/**
      - improvement/**
      - bugfix/**

  pull_request:
    branches:
      - master
      - feature/**
      - improvement/**
      - bugfix/**

env:
  LINUX_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17431/l_BaseKit_p_2021.1.0.2659_offline.sh
  LINUX_HPCKIT_URL:
    https://registrationcenter-download.intel.com/akdlm/irc_nas/17427/l_HPCKit_p_2021.1.0.2684_offline.sh

jobs:
  icc_tests:
    if: >-
      ! contains(toJSON(github.event.commits.*.message), '[skip ci]') &&
      ! contains(toJSON(github.event.commits.*.message), '[skip github]')

    runs-on: ubuntu-latest

    defaults:
      run:
        shell: bash

    container:
      image: gcc:10
      options: -v /usr/local:/host_usr_local

    steps:
      - uses: actions/checkout@v2

      - name: cache install
        id: cache-install
        uses: actions/cache@v2
        with:
          path: |
            /opt/intel/oneapi/compiler
          key: >-
            install-${{env.LINUX_HPCKIT_URL}}-
            ${{env.LINUX_CPP_COMPONENTS_WEB}}-
            compiler-${{hashFiles('**/scripts/cache_exclude_linux.sh')}}

      - name: Install icc
        run: >-
          script/ci_install_icc.sh $LINUX_HPCKIT_URL $LINUX_CPP_COMPONENTS_WEB

      - name: CMake
        run: echo "/host_usr_local/bin" >> $GITHUB_PATH

      - name: Install dependencies
        run: script/ci_install_deps.sh

      - name: Configure
        run: >-
          source script/ci_setup_icc.sh &&
          cmake -S test -B build -D CMAKE_BUILD_TYPE=Debug

      - name: Build
        run: >-
          source script/ci_setup_icc.sh &&
          cmake --build build -j ${{steps.cores.outputs.count}}

      - name: Run
        working-directory: build
        run: ctest --output-on-failure