Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/RalfG/python-wheels-manylinux-build
GitHub Action to build Python manylinux wheels
https://github.com/RalfG/python-wheels-manylinux-build
Last synced: 29 days ago
JSON representation
GitHub Action to build Python manylinux wheels
- Host: GitHub
- URL: https://github.com/RalfG/python-wheels-manylinux-build
- Owner: RalfG
- License: apache-2.0
- Archived: true
- Created: 2019-12-17T15:40:42.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-27T14:06:42.000Z (over 1 year ago)
- Last Synced: 2024-10-29T22:56:56.626Z (about 2 months ago)
- Language: Shell
- Homepage: https://github.com/marketplace/actions/python-wheels-manylinux-build
- Size: 132 KB
- Stars: 92
- Watchers: 5
- Forks: 44
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
⚠️ This action has been archived in favor of [PyPA/cibuildwheel](https://github.com/pypa/cibuildwheel) ⚠️
---
# Python wheels manylinux build - GitHub Action
![GitHub release](https://flat.badgen.net/github/release/RalfG/python-wheels-manylinux-build)
![License](https://flat.badgen.net/github/license/RalfG/python-wheels-manylinux-build)
![Open issues](https://flat.badgen.net/github/open-issues/RalfG/python-wheels-manylinux-build)
![Merged PRs](https://flat.badgen.net/github/merged-prs/RalfG/python-wheels-manylinux-build)
![GitHub Stars](https://flat.badgen.net/github/stars/RalfG/python-wheels-manylinux-build)
![GitHub Forks](https://flat.badgen.net/github/forks/RalfG/python-wheels-manylinux-build)Build manylinux wheels for a (Cython) Python package.
This action uses the [manylinux](https://github.com/pypa/manylinux) containers to
build manylinux wheels for a (Cython) Python package. The wheels are placed in a
new directory `/dist` and can be uploaded to PyPI in the next step of your
workflow.This is a relatively simple and straightforward action. For more complicated use cases,
check out [PyPA/cibuildwheel](https://github.com/pypa/cibuildwheel).## Usage
### Example
Minimal:```yaml
uses: RalfG/[email protected]
with:
python-versions: 'cp310-cp310 cp311-cp311'
```Using all arguments:
```yaml
uses: RalfG/[email protected]_x86_64
with:
python-versions: 'cp310-cp310 cp311-cp311'
build-requirements: 'cython numpy'
system-packages: 'lrzip-devel zlib-devel'
pre-build-command: 'sh pre-build-script.sh'
package-path: 'my_project'
pip-wheel-args: '-w ./dist --no-deps'
```See
[full_workflow_example.yml](https://github.com/RalfG/python-wheels-manylinux-build/blob/master/full_workflow_example.yml)
for a complete example that includes linting and uploading to PyPI.### Inputs
| name | description | required | default | example(s) |
| - | - | - | - | - |
| `python-versions` | Python version tags for which to build (PEP 425 tags) wheels, as described in the [manylinux image documentation](https://github.com/pypa/manylinux), space-separated | required | `'cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311'` | `'cp310-cp310 cp311-cp311'` |
| `build-requirements` | Python (pip) packages required at build time, space-separated | optional | `''` | `'cython'` or `'cython==0.29.14'` |
| `system-packages` | System (yum) packages required at build time, space-separated | optional | `''` | `'lrzip-devel zlib-devel'` |
| `pre-build-command` | Command to run before build, e.g. the execution of a script to perform additional build-environment setup | optional | `''` | `'sh pre-build-script.sh'` |
| `package-path` | Path to python package to build (e.g. where `setup.py` file is located), relative to repository root | optional | `''` | `'my_project'` |
| `pip-wheel-args` | Extra extra arguments to pass to the `pip wheel` command (see [pip documentation](https://pip.pypa.io/en/stable/reference/pip_wheel/)), passed paths are relative to `package-path` | optional | `'-w ./dist --no-deps'` | `'-w ./wheelhouse --no-deps --pre'` |### Output
The action creates wheels, by default in the `/dist` directory. The output
path can be modified in the `pip-wheel-args` option with the `-w` argument. Be sure to
upload only the `*-manylinux*.whl` wheels, as the non-audited (e.g. `linux_x86_64`)
wheels are not accepted by PyPI.### Using a different manylinux container
The `manylinux2014_x86_64` container is used by default. To use another manylinux
container, append `-` to the reference. For example:
`RalfG/[email protected]_aarch64` instead of
`RalfG/[email protected]`.## Contributing
Bugs, questions or suggestions? Feel free to post an issue in the
[issue tracker](https://github.com/RalfG/python-wheels-manylinux-build/issues)
or to make a pull request!