Repository navigation
Build and test conda-recipe-cf for Intel Python CI - #400
Open
jharlow-intel wants to merge 2 commits into
Open
jharlow-intel wants to merge 2 commits into
jharlow-intel wants to merge 2 commits into
Conversation
Adds what Intel Python CI (gh-ci) needs from this repository: ci/ with the shared matrix, build and test-hook scripts, ci/test.py and ci/config.yml, and .github/workflows/intel-ci.yml, which builds conda-recipe-cf for every platform and Python version the recipe declares and tests each package in a clean conda-forge environment, as Jenkins later does. conda-recipe-cf/conda_build_config.yaml now declares the Python versions conda-package-cf.yml builds, for ci/matrix.py, and NumPy 2: without a numpy variant conda-build falls back to NumPy 1.26, which has no builds for Python 3.13 and newer. conda-package-cf.yml passes --python and --numpy itself, so it is unaffected.
jharlow-intel
marked this pull request as ready for review
October 23, 2026 20:42
jharlow-intel
requested review from
antonwolfy,
ndgrigorian,
vlad-perevezentsev and
xaleryb
as code owners
October 23, 2026 20:42
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Full-version builds and the external Jenkins handoff remain unverified and need maintainer validation.
1 open issue
What changed in this PR
Adds GitHub Actions build and test support for mkl_fft’s conda-forge packages, preparing the repository for Intel Python CI’s future Jenkins integration.
Changes:
- Derives Linux and Windows build matrices from recipe Python variants, limiting pull requests to the two newest regular versions.
- Adds package-building and isolated testing scripts, with pytest JUnit reporting.
- Configures artifact naming, pins Miniforge, and documents the CI integration.
| File | Description |
|---|---|
conda-recipe-cf/conda_build_config.yaml |
Declares Python variants and NumPy 2. |
conda-recipe-cf/AGENTS.md |
Documents the recipe’s matrix role. |
ci/test.py |
Tests the installed package and writes JUnit results. |
ci/README.md |
Explains CI operation and local usage. |
ci/matrix.py |
Derives platform and Python build matrices. |
ci/hooks.py |
Installs artifacts into isolated test environments. |
ci/config.yml |
Defines workflow, artifact names, and test requirements. |
ci/build.py |
Builds and collects packages for a selected Python version. |
AGENTS.md |
Adds the Intel Python CI directory reference. |
.github/workflows/intel-ci.yml |
Orchestrates matrix generation, builds, and package tests. |
.github/AGENTS.md |
Documents the workflow and its matrix source. |
Review effort: Balanced
| raise DeclarationError(f"{where}: python must be a list") | ||
| values = [] | ||
| for item in lines[number + 1 :]: | ||
| item = _strip_comment(item, where) |
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_fft: 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_fft 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. Here they look forconda-recipe-cf/first and build Linux and Windows on GitHub-hosted runners.hooks.pyinstalls the test requirements fromci/config.yml, the way Jenkins does.ci/test.py: runspytest --pyargs mkl_fftagainst the installed package and writes a JUnit report.ci/config.yml: the workflow, the artifact names (mkl_fft {platform} Python {python}, asconda-package-cf.ymlnames them) and the test requirements,pytest,scipy >=1.10andmkl-service.conda-recipe-cf/conda_build_config.yaml: now lists the Python versions, the onesconda-package-cf.ymlbuilds today, forci/matrix.py, andnumpy: '2'. Without a NumPy variant, conda-build falls back to NumPy 1.26, which has no builds for Python 3.13 and newer.conda-package-cf.ymlpasses--pythonand--numpyitself, so it is unaffected.ci/README.mdand AGENTS.md notes.A pull request builds the two newest regular Python versions on Linux and Windows; pushes to
masterand tags build them all.Miniforge is pinned to 26.7.2-0. Miniforge 26.9.4-0, released on 22 October, makes
setup-miniconda'sconda initfail on Windows runners, and the existingconda-package*.ymlworkflows, which installlatest, hit it too on this pull request.Overlap with #398. It also sets
numpy: '2'inconda_build_config.yamland drops Python 3.10, so whichever lands second needs a small rebase, and if 3.10 goes it should leave thepython:list here too.conda-package-cf.ymlandintel-ci.ymlnow both buildconda-recipe-cf; retiring one can be a follow-up.Verification
ci/test.pyagainst each package: 2769 passed on Linux 3.14, 2763 on Windows 3.15.pre-commit runon every changed file, all hooks passing, andzizmoronintel-ci.yml, no findings.python ci/matrix.pylists 14 builds, Linux and Windows for 3.10 to 3.15 and 3.14t; with--event pull_requestit lists 3.14 and 3.15 on both.ci/config.ymlloads with gh-ci's own parser.Not verified