Repository navigation
Build and test conda-recipe-cf for Intel Python CI - #265
Open
jharlow-intel wants to merge 1 commit into
Open
jharlow-intel wants to merge 1 commit into
jharlow-intel wants to merge 1 commit into
Conversation
jharlow-intel
requested review from
antonwolfy,
ndgrigorian,
vlad-perevezentsev and
xaleryb
as code owners
October 28, 2026 21:28
There was a problem hiding this comment.
🔵 Needs a closer look
The native-package pipeline requires end-to-end Linux/Windows CI validation of conda solving and runtime loading for 3.14t/3.15t, which remain unverified by standard-library-only checks.
No open issues 🎉
What changed in this PR
Adds GitHub Actions build and package testing for Intel Python CI, preparing mkl-service for Jenkins integration. Jenkins is not yet enabled for this repository.
Changes:
- Derives Linux and Windows build matrices from the conda-forge recipe, selecting four builds for pull requests and all 16 for master pushes and tags.
- Adds build and isolated package-test scripts, with pytest results written as JUnit reports.
- Documents the integration and its configuration.
| File | Description |
|---|---|
conda-recipe-cf/conda_build_config.yaml |
Declares Python versions and ABI variants for matrix generation. |
ci/test.py |
Checks the interpreter and runs installed-package tests with JUnit output. |
ci/README.md |
Documents CI operation and local commands. |
ci/matrix.py |
Generates platform and Python matrices from build declarations. |
ci/hooks.py |
Installs artifacts into clean environments and runs package tests. |
ci/config.yml |
Defines the workflow, artifact naming, and test requirements. |
ci/build.py |
Builds packages for a selected Python variant and collects artifacts. |
AGENTS.md |
Adds a pointer to Intel Python CI documentation. |
.github/workflows/intel-ci.yml |
Orchestrates matrix generation, builds, artifact uploads, and tests. |
.github/AGENTS.md |
Documents the workflow and its recipe-derived matrix exception. |
Review effort: Balanced
antonwolfy
reviewed
Oct 29, 2026
| @@ -1,3 +1,13 @@ | |||
| # Python versions for ci/matrix.py, one per line, without selectors | |||
| python: | |||
| - "3.10" | |||
Collaborator
There was a problem hiding this comment.
conda-forge dropped 3.10 python, and so it's a bit confusing to have 3.10 listed here
Collaborator
There was a problem hiding this comment.
I was planning to rely on similar matrix building in #264 where I tried to improve cf testing workflow.
But we should not have 3.10 here then.
jharlow-intel
force-pushed
the
ci/intel-python-ci
branch
2 times, most recently
from
October 30, 2026 14:43
ee0bbbf to
eaaedc1
Compare
jharlow-intel
force-pushed
the
ci/intel-python-ci
branch
4 times, most recently
from
October 30, 2026 15:27
0db81d3 to
f4c2344
Compare
Adds what Intel Python CI (gh-ci) needs: a ci/ directory and .github/workflows/intel-ci.yml. The workflow builds conda-recipe-cf with conda-build and the wheels with cibuildwheel, for every platform and Python version the recipe and pyproject.toml declare, and tests each package in a clean environment with ci/test.py. Intel's Jenkins tests them again, scans them, and publishes a release tag's tested packages as its GitHub Release. conda-recipe-cf/ is now the only recipe: conda-recipe/ and conda-package.yml, which built it against Intel's channel and copied wheels out through WHEELS_OUTPUT_FOLDER, are removed. conda-package-cf.yml reports the same check names, so the required checks still run. The wheels' run-time requirement on mkl comes from [tool.gh-ci] wheel-requires in pyproject.toml, which ci/build.py adds to each wheel: in [project] it would fail the recipe's pip check, as conda-forge's mkl has no pip metadata.
jharlow-intel
force-pushed
the
ci/intel-python-ci
branch
from
October 30, 2026 18:36
f4c2344 to
926e627
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds what Intel Python CI (gh-ci) needs from mkl-service, as IntelPython/mkl_fft#400, IntelPython/mkl_random#204 and IntelPython/mkl_umath#294 do for theirs: a
ci/directory and a new workflow,.github/workflows/intel-ci.yml. The workflow buildsconda-recipe-cffor every platform and Python version the recipe declares, and tests each package in a clean conda-forge environment withci/test.py. Intel's Jenkins then waits for that run, tests each package again on its own machines, scans it, and for a release tag publishes the packages it tested. Jenkins isn't switched on for mkl-service yet, so until it is, this only adds a GitHub Actions workflow.ci/matrix.py,ci/build.py,ci/hooks.py: the shared gh-ci scripts, standard library only, byte-identical to the other three repositories.ci/test.py: runspytest --pyargs mklagainst the installed package and writes a JUnit report.ci/config.yml: the workflow, the artifact names (mkl-service {platform} Python {python}, asconda-build-test.ymlnames them) and the test requirement,pytest.conda-recipe-cf/conda_build_config.yaml: now lists the Python versions ofconda-forge/mkl-service-feedstockplus 3.15t, that is 3.11 to 3.15 plus 3.14t and 3.15t, forci/matrix.py.conda-build-test.ymlpasses--pythonitself, so it is unaffected. mkl-service doesn't depend on NumPy, so there is no NumPy variant.ci/README.md, and pointers inAGENTS.mdand.github/AGENTS.md.A pull request builds the oldest and the newest regular Python versions on Linux and Windows; pushes to
masterand tags build all 14.Overlap with #264. It adds the same
python:entries toconda-recipe-cf/conda_build_config.yaml, at the same place; only the comment above them differs, so whichever lands second keeps one.Verification
python ci/matrix.pylists 14 builds, Linux and Windows for 3.11 to 3.15, 3.14t and 3.15t; with--event pull_requestit lists 3.11 and 3.15 on both.ci/config.ymlpasses gh-ci's ownplancheck.pre-commit runon every changed file, all hooks passing, andzizmoronintel-ci.yml, no findings.ci/test.pyagainst each package: 188 passed and 22 skipped on 3.11, 190 passed and 20 skipped on 3.15, on both platforms.Not verified
masteradds, Python 3.12 to 3.14, 3.14t and 3.15t; they use the same jobs.