Backport gh-2193 #155
Workflow file for this run
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: Test oneMKL interfaces | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
permissions: read-all | |
env: | |
CHANNELS: '-c dppy/label/dev -c https://software.repos.intel.com/python/conda/ -c conda-forge --override-channels' | |
TEST_ENV_NAME: 'test_onemkl_interfaces' | |
BUILD_DEP_PKGS: >- | |
mkl-devel-dpcpp | |
tbb-devel | |
dpctl | |
onedpl-devel | |
setuptools | |
python | |
numpy">=2.0" | |
cython | |
cmake | |
ninja | |
scikit-build | |
jobs: | |
test_default: | |
name: Run on ['${{ matrix.os }}', python='${{ matrix.python }}'] | |
strategy: | |
matrix: | |
python: ['3.12'] | |
os: [ubuntu-22.04] # windows-2019 - no DFT support for Windows in oneMKL | |
permissions: | |
# Needed to cancel any previous runs that are not completed for a given workflow | |
actions: write | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.os == 'windows-2019' && 'cmd /C CALL {0}' || 'bash -el {0}' }} | |
continue-on-error: false | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout DPNP repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
- name: Setup miniconda | |
uses: conda-incubator/setup-miniconda@d2e6a045a86077fb6cad6f5adf368e9076ddaa8d # v3.1.0 | |
with: | |
miniforge-version: latest | |
use-mamba: 'true' | |
channels: conda-forge | |
conda-remove-defaults: 'true' | |
python-version: ${{ matrix.python }} | |
activate-environment: ${{ env.TEST_ENV_NAME }} | |
# Sometimes `mamba install ...` fails due to slow download speed rate, so disable the check in mamba | |
- name: Disable speed limit check in mamba | |
run: echo "MAMBA_NO_LOW_SPEED_LIMIT=1" >> $GITHUB_ENV | |
- name: Install dpnp build dependencies | |
run: | | |
mamba install ${{ env.DPCPP_PKG }} ${{ env.BUILD_DEP_PKGS }} ${{ env.CHANNELS }} | |
env: | |
DPCPP_PKG: ${{ matrix.os == 'windows-2019' && 'dpcpp_win-64 vs_win-64=2017.9' || 'dpcpp_linux-64' }} | |
- name: Conda info | |
run: | | |
mamba info | |
mamba list | |
- name: Build and install DPNP package | |
run: | | |
python scripts/build_locally.py --onemkl-interfaces --verbose | |
- name: Smoke test | |
run: | | |
python -m dpctl -f | |
python -c "import dpnp; print(dpnp.__version__)" | |
- name: Install pytest | |
run: | | |
mamba install pytest ${{ env.CHANNELS }} | |
- name: Run tests | |
run: | | |
python -m pytest -ra --pyargs dpnp.tests | |
env: | |
SYCL_CACHE_PERSISTENT: 1 | |
test_build_option: | |
name: Run on ['${{ matrix.os }}', python='${{ matrix.python }}'] though build option | |
strategy: | |
matrix: | |
python: ['3.12'] | |
os: [ubuntu-22.04] # windows-2019 - no DFT support for Windows in oneMKL | |
permissions: | |
# Needed to cancel any previous runs that are not completed for a given workflow | |
actions: write | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.os == 'windows-2019' && 'cmd /C CALL {0}' || 'bash -el {0}' }} | |
continue-on-error: true | |
env: | |
onemkl-source-dir: '${{ github.workspace }}/onemkl/' | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout DPNP repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
- name: Checkout oneMKL repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
repository: 'oneapi-src/oneMKL' | |
ref: 'v0.6' # the same as handcoded by default | |
path: ${{ env.onemkl-source-dir }} | |
fetch-depth: 0 | |
- name: oneMKL ls info | |
run: | | |
ls -la ${{ env.onemkl-source-dir }} | |
- name: Setup miniconda | |
uses: conda-incubator/setup-miniconda@d2e6a045a86077fb6cad6f5adf368e9076ddaa8d # v3.1.0 | |
with: | |
miniforge-version: latest | |
use-mamba: 'true' | |
channels: conda-forge | |
conda-remove-defaults: 'true' | |
python-version: ${{ matrix.python }} | |
activate-environment: ${{ env.TEST_ENV_NAME }} | |
# Sometimes `mamba install ...` fails due to slow download speed rate, so disable the check in mamba | |
- name: Disable speed limit check in mamba | |
run: echo "MAMBA_NO_LOW_SPEED_LIMIT=1" >> $GITHUB_ENV | |
- name: Install dpnp build dependencies | |
run: | | |
mamba install ${{ env.DPCPP_PKG }} ${{ env.BUILD_DEP_PKGS }} ${{ env.CHANNELS }} | |
env: | |
DPCPP_PKG: ${{ matrix.os == 'windows-2019' && 'dpcpp_win-64 vs_win-64=2017.9' || 'dpcpp_linux-64' }} | |
- name: Conda info | |
run: | | |
mamba info | |
mamba list | |
- name: Build and install DPNP package | |
run: | | |
python scripts/build_locally.py --onemkl-interfaces --onemkl-interfaces-dir=${{ env.onemkl-source-dir }} --verbose | |
- name: Smoke test | |
run: | | |
python -m dpctl -f | |
python -c "import dpnp; print(dpnp.__version__)" | |
- name: Install pytest | |
run: | | |
mamba install pytest ${{ env.CHANNELS }} | |
- name: Run tests | |
run: | | |
python -m pytest -ra --pyargs dpnp.tests | |
env: | |
SYCL_CACHE_PERSISTENT: 1 |