diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2023-09-18 02:34:42 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 02:34:42 (GMT) |
commit | c82f9a550b4577f1854ca0375fe2a38fee731eb4 (patch) | |
tree | e8350da5ff96ebc3871c7ba8baf6a59a63b4c835 /.github/workflows/intel-cmake.yml | |
parent | 44a00ef876ad3e1922847e93feac57c479217fbe (diff) | |
download | hdf5-c82f9a550b4577f1854ca0375fe2a38fee731eb4.zip hdf5-c82f9a550b4577f1854ca0375fe2a38fee731eb4.tar.gz hdf5-c82f9a550b4577f1854ca0375fe2a38fee731eb4.tar.bz2 |
Convert main.yml CI into callable workflows (#3529)
Diffstat (limited to '.github/workflows/intel-cmake.yml')
-rw-r--r-- | .github/workflows/intel-cmake.yml | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml new file mode 100644 index 0000000..7800214 --- /dev/null +++ b/.github/workflows/intel-cmake.yml @@ -0,0 +1,83 @@ +name: hdf5 dev CMake icx CI + +# Controls when the action will run. Triggers the workflow on a call +on: + workflow_call: + inputs: + build_mode: + description: "release vs. debug build" + required: true + type: string + +permissions: + contents: read + +jobs: + Intel_build_and_test: + name: "Intel ${{ inputs.build_mode }} -Werror (build only)" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: add oneAPI to apt + shell: bash + run: | + cd /tmp + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo add-apt-repository -y "deb https://apt.repos.intel.com/oneapi all main" + + - name: Install Linux Dependencies + run: | + sudo apt update + sudo apt-get install ninja-build doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + + - name: install oneAPI dpcpp and fortran compiler + shell: bash + run: | + sudo apt update + sudo apt install -y intel-oneapi-compiler-dpcpp-cpp + sudo apt install -y intel-oneapi-compiler-fortran + + - name: install oneAPI MKL library + shell: bash + run: | + sudo apt install -y intel-oneapi-mkl-devel + + - name: CMake Configure with icx + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_TOOLCHAIN_FILE=config/toolchain/intel.cmake \ + -DMKL_ROOT="/opt/intel/oneapi/mkl/latest" \ + -DTBB_ROOT="/opt/intel/oneapi/tbb/latest" \ + -DBUILD_SZIP_WITH_FETCHCONTENT=ON \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DBUILD_ZLIB_WITH_FETCHCONTENT=ON \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF5_BUILD_FORTRAN=OFF \ + $GITHUB_WORKSPACE + + # BUILD + - name: CMake Build + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + working-directory: ${{ runner.workspace }}/build + + # RUN TESTS + - name: CMake Run Tests + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + export SYCL_DEVICE_FILTER=opencl.cpu + ctest . --parallel 2 -C ${{ inputs.build_mode }} -V + working-directory: ${{ runner.workspace }}/build |