Coder Social home page Coder Social logo

faycald / maturin-action Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pyo3/maturin-action

0.0 0.0 0.0 1.05 MB

GitHub Action to install and run a custom maturin command with built-in support for cross compilation

License: MIT License

Python 7.67% Rust 1.15% TypeScript 91.18%

maturin-action's Introduction

maturin-action

GitHub Actions

GitHub Action to install and run a custom maturin command with built-in support for cross compilation.

Usage

- uses: PyO3/maturin-action@v1
  with:
    command: build
    args: --release

To generate a GitHub Actions workflow for your project, try the maturin generate-ci github command.

mkdir -p .github/workflows
maturin generate-ci github > .github/workflows/CI.yml

Examples

If you want to build and publish a Python extension module for common Python versions, operating systems, and CPU architectures, take a look at the following examples:

Inputs

Name Required Description Type Default
command No maturin command to run string build
args No Arguments to pass to maturin subcommand string
maturin-version No The version of maturin to use. Must match a tagged release string latest
manylinux No Control the manylinux platform tag on linux, ignored on other platforms, use auto to build for lowest compatible string Defaults to auto for the publish command
target No The --target option for Cargo string
container No manylinux docker container image name string Default depends on target and manylinux options, Set to off to disable manylinux docker build and build on the host instead.
docker-options No Additional Docker run options, for passing environment variables and etc. string
rust-toolchain No Rust toolchain name string Defaults to stable for Docker build
rustup-components No Rustup components string Defaults to empty
working-directory No The working directory to run the command in string Defaults to the root of the repository
sccache No Enable sccache for faster builds boolean Defaults to false
before-script-linux No Script to run before the maturin command on Linux string

manylinux Docker container

By default, this action uses the following containers for supported architectures and manylinux versions.

Architecture Manylinux version Default container Note
x86_64 2010/2_12 quay.io/pypa/manylinux2010_x86_64:latest
x86_64 2014/2_17 quay.io/pypa/manylinux2014_x86_64:latest
x86_64 2_24 quay.io/pypa/manylinux_2_24_x86_64:latest Deprecated
x86_64 2_28 quay.io/pypa/manylinux_2_28_x86_64:latest
i686 2010/2_12 quay.io/pypa/manylinux2010_i686:latest
i686 2014/2_17 quay.io/pypa/manylinux2014_i686:latest
i686 2_24 quay.io/pypa/manylinux_2_24_i686:latest Deprecated
aarch64 2014/2_17 ghcr.io/rust-cross/manylinux2014-cross:aarch64
aarch64 2_24 messense/manylinux_2_24-cross:aarch64
aarch64 2_28 ghcr.io/rust-cross/manylinux_2_28-cross:aarch64
armv7l 2014/2_17 ghcr.io/rust-cross/manylinux2014-cross:armv7
armv7l 2_24 messense/manylinux_2_24-cross:armv7
armv7l 2_28 ghcr.io/rust-cross/manylinux_2_28-cross:armv7
ppc64le 2014/2_17 ghcr.io/rust-cross/manylinux2014-cross:ppc64le
ppc64le 2_24 messense/manylinux_2_24-cross:ppc64le Deprecated
ppc64le 2_28 ghcr.io/rust-cross/manylinux_2_28-cross:ppc64le
ppc64 2014/2_17 ghcr.io/rust-cross/manylinux2014-cross:ppc64
s390x 2014/2_17 ghcr.io/rust-cross/manylinux2014-cross:s390x
s390x 2_24 messense/manylinux_2_24-cross:s390x Deprecated
s390x 2_28 ghcr.io/rust-cross/manylinux_2_28-cross:s390x

You can override it by supplying the container input. Note that if use official manylinux docker images for platforms other than x86_64 and i686, you will need to setup QEMU before using this action, for example

- name: Setup QEMU
  uses: docker/setup-qemu-action@v1
- uses: PyO3/maturin-action@v1
  with:
    command: build
    args: --release

Note that the actions/setup-python action won't affect manylinux build since it's containerized, so if you want to build for certain Python version for Linux, use -i pythonX.Y in the args option in PyO3/maturin-action instead, for example

- uses: PyO3/maturin-action@v1
  with:
    args: --release -i python3.10

Contributing

To build after code changes:

npm run all

License

This work is released under the MIT license. A copy of the license is provided in the LICENSE file.

maturin-action's People

Contributors

messense avatar dependabot[bot] avatar wfxr avatar adriangb avatar tpt avatar ijl avatar konstin 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.