Git Product home page Git Product logo

python-wheels-manylinux-build's Introduction

Python wheels manylinux build - GitHub Action

GitHub release License Open issues Merged PRs GitHub Stars GitHub Forks

Build manylinux wheels for a (Cython) Python package.

This action uses the manylinux containers to build manylinux wheels for a (Cython) Python package. The wheels are placed in a new directory <package-path>/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.

Usage

Example

Minimal:

uses: RalfG/[email protected]
with:
  python-versions: 'cp310-cp310 cp311-cp311'

Using all arguments:

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 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, 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), 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 <package-path>/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 -<container-name> 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 or to make a pull request!

python-wheels-manylinux-build's People

Contributors

ralfg avatar dries007 avatar exarkun avatar agates avatar levitsky avatar gcs-zhn avatar ahartikainen avatar ewouth avatar brianhelba avatar legoktm avatar thecapypara avatar mr-c avatar minrk avatar cielavenir avatar odidev avatar skshetry avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.