tests running the sample data #26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| WINDOWS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/3bbdaf75-6728-492e-a18c-be654dae9ee2/intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe | |
| WINDOWS_INTEL_COMPONENTS: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel | |
| jobs: | |
| linux-gcc-nomkl: | |
| name: ubuntu-gcc-nomkl | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install build deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential | |
| - name: Configure (Release) | |
| run: | | |
| cmake -S . -B build \ | |
| -G "Unix Makefiles" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_C_COMPILER=gcc \ | |
| -DCMAKE_CXX_COMPILER=g++ | |
| - name: Build | |
| run: cmake --build build --parallel | |
| - name: Test | |
| run: ctest --test-dir build --output-on-failure | |
| - name: Package | |
| run: cpack -C Release -G TGZ --config ./build/CPackConfig.cmake | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.job }}-${{ runner.arch }} | |
| path: "*.tar.gz" | |
| retention-days: 7 | |
| macos-gcc-nomkl: | |
| strategy: | |
| matrix: | |
| osver: [13,latest] | |
| name: macos-gcc-nomkl-${{ matrix.osver }} | |
| runs-on: macos-${{ matrix.osver }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install build deps | |
| run: | | |
| brew update | |
| brew install cmake libomp gcc@12 | |
| - name: Configure (Release) | |
| run: | | |
| cmake -S . -B build \ | |
| -G "Unix Makefiles" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_C_COMPILER=gcc-12 \ | |
| -DCMAKE_CXX_COMPILER=g++-12 | |
| - name: Build | |
| run: cmake --build build --parallel | |
| - name: Test | |
| run: ctest --test-dir build --output-on-failure | |
| - name: Package | |
| run: cpack -C Release -G TGZ --config ./build/CPackConfig.cmake | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.job }}-${{ runner.arch }} | |
| path: "*.tar.gz" | |
| retention-days: 7 | |
| windows-msvc-nomkl: | |
| name: windows-msvc-nomkl | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Configure (Release, x64) | |
| run: | | |
| cmake -S . -B build ^ | |
| -G "Visual Studio 17 2022" ^ | |
| -DCMAKE_BUILD_TYPE=Release ^ | |
| -A x64 | |
| shell: cmd | |
| - name: Build | |
| run: cmake --build build --config Release -- /m | |
| shell: cmd | |
| - name: Test | |
| run: ctest --test-dir build -C Release --output-on-failure | |
| shell: bash | |
| - name: Package | |
| run: cpack -C Release -G ZIP --config .\build\CPackConfig.cmake | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.job }}-${{ runner.arch }} | |
| path: "*.zip" | |
| retention-days: 7 | |
| windows-mingw-nomkl: | |
| name: windows-mingw-nomkl | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install MinGW | |
| run: choco install mingw -y | |
| shell: powershell | |
| - name: Add MinGW to PATH | |
| run: echo "C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin" >> $GITHUB_PATH | |
| shell: bash | |
| - name: Configure (Release, MinGW) | |
| run: | | |
| cmake -S . -B build ^ | |
| -G "MinGW Makefiles" ^ | |
| -DCMAKE_BUILD_TYPE=Release ^ | |
| -DCMAKE_C_COMPILER=gcc ^ | |
| -DCMAKE_CXX_COMPILER=g++ | |
| shell: cmd | |
| - name: Build | |
| run: cmake --build build --parallel | |
| shell: cmd | |
| - name: Test | |
| run: ctest --test-dir build --output-on-failure | |
| shell: bash | |
| - name: Package | |
| run: cpack -C Release -G ZIP --config .\build\CPackConfig.cmake | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.job }}-${{ runner.arch }} | |
| path: "*.zip" | |
| retention-days: 7 | |
| linux-intel-mkl: | |
| name: linux-intel-mkl | |
| runs-on: ubuntu-latest | |
| container: | |
| image: intel/oneapi-hpckit:latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install build deps | |
| run: | | |
| apt-get update | |
| apt-get install -y build-essential | |
| - name: Configure (Release) | |
| run: | | |
| cmake -S . -B build \ | |
| -G "Unix Makefiles" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_C_COMPILER=icx \ | |
| -DCMAKE_CXX_COMPILER=icx | |
| - name: Build | |
| run: cmake --build build --parallel | |
| - name: Test | |
| run: ctest --test-dir build --output-on-failure | |
| - name: Package | |
| run: cpack -C Release -G TGZ --config ./build/CPackConfig.cmake | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.job }}-${{ runner.arch }} | |
| path: "*.tar.gz" | |
| retention-days: 7 | |
| windows-intel-mkl: | |
| name: windows-intel-mkl | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # Cache the oneapi installer download cache | |
| - name: Cache oneAPI webimage + download cache | |
| uses: actions/cache@v4 | |
| id: oneapi-cache | |
| with: | |
| path: | | |
| ${{ github.workspace }}\oneapi_webimage | |
| ${{ github.workspace }}\oneapi_download_cache | |
| key: oneapi-${{ runner.os }}-${{ env.WINDOWS_HPCKIT_URL }}-${{ env.WINDOWS_INTEL_COMPONENTS }} | |
| # if missing, download the installer and extract | |
| - name: Fetch/extract installer webimage | |
| if: steps.oneapi-cache.outputs.cache-hit != 'true' | |
| run: | | |
| curl.exe -L --output %TEMP%\oneapi.exe --url %WINDOWS_HPCKIT_URL% | |
| %TEMP%\oneapi.exe -s -x -f "%GITHUB_WORKSPACE%\oneapi_webimage" --log output.log | |
| shell: cmd | |
| # Installer is always run, but fast if the download cache is populated | |
| - name: Install Intel oneAPI components (with VS integration) | |
| run: | | |
| "%GITHUB_WORKSPACE%\oneapi_webimage\bootstrapper.exe" ^ | |
| -s --action install --eula=accept ^ | |
| --components=%WINDOWS_INTEL_COMPONENTS% ^ | |
| --download-cache "%GITHUB_WORKSPACE%\oneapi_download_cache" ^ | |
| -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=1 ^ | |
| --log-dir="%GITHUB_WORKSPACE%\oneapi_logs" | |
| shell: cmd | |
| # Now run standard pipeline | |
| - name: Configure (Release, x64) | |
| run: | | |
| cmake -S . -B build ^ | |
| -G "Visual Studio 17 2022" ^ | |
| -A x64 ^ | |
| -T "Intel C++ Compiler 2025" ^ | |
| -DUSE_MKL_LIB=ON | |
| shell: cmd | |
| - name: Build | |
| run: cmake --build build --config Release -- /m | |
| shell: cmd | |
| - name: Test | |
| run: ctest --test-dir build -C Release --output-on-failure | |
| shell: bash | |
| - name: Package | |
| run: cpack -C Release -G ZIP --config .\build\CPackConfig.cmake | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.job }}-${{ runner.arch }} | |
| path: "*.zip" | |
| retention-days: 7 |