Skip to content

Commit 9ea68d5

Browse files
committed
Build and test conda packages and wheels
Adds a ci/ directory and .github/workflows/intel-ci.yml, which build the conda packages and the wheels for every declared platform and Python and test each with ci/test.py on the OpenCL CPU device. conda-recipe/ is now the only recipe, the conda-forge one that was conda-recipe-cf/; the Intel-channel recipe and conda-package.yml are removed. The dev uploads to anaconda.org and their cleanup move into intel-ci.yml, for pushes to master and tags only. The wheels leave the SYCL runtime out and require intel-sycl-rt and intel-cmplr-lib-rt, as the PyPI wheels do; scikit-build is pinned below 1.0 (#2341). LDFLAGS in the cibuildwheel environment links every Linux library with -z,relro,-z,now, as conda-forge's compiler activation does for the conda packages, so libDPCTLSyclInterface.so gets full RELRO like the extensions. conda-build gets --extra-meta remote_url=... sha=... when GitHub Actions sets GITHUB_SERVER_URL, GITHUB_REPOSITORY and GITHUB_SHA, so each conda package records the commit it was built from. A pull request also builds and tests the newest free-threaded version, and every push and tag run gets a concurrency group of its own. The benchmarks take PyYAML from conda-forge, as PyPI has no Python 3.15 wheel for it yet. ci/build.py refuses two built packages with the same file name, which would overwrite each other in its flat output directory.
1 parent 2ed816f commit 9ea68d5

27 files changed

Lines changed: 2319 additions & 1328 deletions

‎.github/workflows/conda-package-cf.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ env:
1313
PACKAGE_NAME: dpctl
1414
MODULE_NAME: dpctl
1515
TEST_ENV_NAME: test_dpctl
16-
RECIPE_DIR: conda-recipe-cf
16+
RECIPE_DIR: conda-recipe
1717
CHANNELS: "-c conda-forge --override-channels"
1818
VER_SCRIPT1: "import json; f = open('ver.json', 'r'); j = json.load(f); f.close(); d = j['dpctl'][0];"
1919
VER_SCRIPT2: "print('='.join((d[s] for s in ('version', 'build'))))"
@@ -60,7 +60,7 @@ jobs:
6060
with:
6161
path: ~/.conda/pkgs
6262
key:
63-
${{ runner.os }}-conda-cf-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-spec-${{ matrix.python == '3.14' && contains(matrix.python_spec, 'cp314t') && 't' || '' }}-${{hashFiles('conda-recipe-cf/meta.yaml') }}
63+
${{ runner.os }}-conda-cf-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-spec-${{ matrix.python == '3.14' && contains(matrix.python_spec, 'cp314t') && 't' || '' }}-${{hashFiles('conda-recipe/meta.yaml') }}
6464
restore-keys: |
6565
${{ runner.os }}-conda-cf-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-spec-${{ matrix.python == '3.14' && contains(matrix.python_spec, 'cp314t') && 't' || '' }}-
6666
${{ runner.os }}-conda-cf-${{ env.CACHE_NUMBER }}-
@@ -405,7 +405,7 @@ jobs:
405405
EXAMPLES_ENV_NAME: examples
406406
BUILD_ENV_NAME: build_env
407407
DPCPP_CMPLR: "dpcpp_linux-64>=2026.0"
408-
# keep in sync with conda-recipe-cf/conda_build_config.yaml
408+
# keep in sync with conda-recipe/conda_build_config.yaml
409409
GCC_CMPLR_VERSION: '15'
410410

411411
steps:

0 commit comments

Comments
 (0)