Skip to content

Commit

Permalink
feat(build): add Linux aarch64 support
Browse files Browse the repository at this point in the history
This commit adds support for building Linux ARM64 wheels:

- Add aarch64 to Linux build matrix
- Configure platform-specific containers and tags
- Update pyproject.toml to support both x86_64 and aarch64
- Add Linux classifier to package metadata

These changes enable building wheels for both x86_64 and aarch64
architectures on Linux while maintaining manylinux2014 compatibility.
  • Loading branch information
dirvine committed Nov 28, 2024
1 parent 9e04b06 commit 0b5ef39
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
13 changes: 10 additions & 3 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,14 @@ jobs:
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x86_64]
target: [x86_64, aarch64]
include:
- target: x86_64
container: quay.io/pypa/manylinux2014_x86_64
platform-tag: manylinux2014_x86_64
- target: aarch64
container: quay.io/pypa/manylinux2014_aarch64
platform-tag: manylinux2014_aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
Expand All @@ -92,8 +99,8 @@ jobs:
with:
target: ${{ matrix.target }}
manylinux: "2014"
args: --release --out dist --compatibility manylinux2014 --skip-auditwheel --interpreter python${{ matrix.python-version }}
container: quay.io/pypa/manylinux2014_x86_64
args: --release --out dist --strip --compatibility manylinux2014 --interpreter python${{ matrix.python-version }} --platform-tag ${{ matrix.platform-tag }}
container: ${{ matrix.container }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ classifiers = [
"Programming Language :: Python :: 3.12",
"Programming Language :: Rust",
"Operating System :: OS Independent",
"Operating System :: POSIX :: Linux",
]
dependencies = [
"pip>=24.0",
Expand All @@ -29,7 +30,9 @@ features = ["python"]
module-name = "self_encryption._self_encryption"
bindings = "pyo3"
develop = true
strip = true
compatibility = "manylinux2014"
platform-tags = ["manylinux2014_x86_64", "manylinux2014_aarch64"]

[tool.pytest.ini_options]
testpaths = ["tests"]
Expand Down

0 comments on commit 0b5ef39

Please sign in to comment.