Skip to content

Commit 0934c56

Browse files
authored
build: arm support for linux (#239)
1 parent 6a6e2ce commit 0934c56

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

.circleci/config.yml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,11 @@ commands:
8484
- $GITHUB_WORKSPACE
8585
key: v1-verified-codemod-repos-{{ checksum "tests/integration/verified_codemods/codemod_data/repo_commits.json" }}-{{.Environment.CIRCLE_NODE_INDEX}}-{{.Environment.CIRCLE_NODE_TOTAL}}
8686
build-wheels:
87-
parameters:
88-
base_packages:
89-
type: boolean
90-
default: false
9187
steps:
9288
- install-uv
9389
- restore_cache:
9490
keys:
95-
- cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}
91+
- cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}-{{ arch }}
9692
- run:
9793
command: |
9894
uv run --frozen cibuildwheel --output-dir dist
@@ -102,7 +98,7 @@ commands:
10298
- save_cache:
10399
paths:
104100
- /home/circleci/.cache/cibuildwheel
105-
key: cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}
101+
key: cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}-{{ arch }}
106102
setup-uv:
107103
steps:
108104
- install-lfs
@@ -339,18 +335,14 @@ jobs:
339335
resource_class:
340336
type: string
341337
default: "large"
342-
base_packages:
343-
type: boolean
344-
default: false
345338
working_directory: ~/linux-wheels
346339
machine:
347340
image: ubuntu-2404:2024.05.1
348341
docker_layer_caching: true
349342
resource_class: <<parameters.resource_class>>
350343
steps:
351344
- checkout
352-
- build-wheels:
353-
base_packages: << parameters.base_packages >>
345+
- build-wheels
354346
- persist_to_workspace:
355347
root: .
356348
paths:
@@ -503,7 +495,10 @@ workflows:
503495
filters:
504496
tags:
505497
only: /^v.*/
506-
base_packages: true
498+
matrix:
499+
parameters:
500+
resource_class: [large, arm.large]
501+
507502
- osx-wheels:
508503
filters:
509504
tags:

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ We support
4646

4747
- Running Codegen in Python 3.12 – 3.13
4848
- macOS and Linux
49-
- We develop on macOS but our testing and production environments are Linux
49+
- macOS is supported on Apple Silicon
50+
- Linux is supported on x86_64 and aarch64 with glibc 2.34+
5051
- Windows is not supported
5152
- Python, Typescript, Javascript and React codebases
5253

pyproject.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,15 @@ python-levenshtein = ["Levenshtein"]
226226
PyGithub = ["github"]
227227
[tool.cibuildwheel]
228228
build-frontend = "build[uv]"
229-
skip = ["*-musllinux_i686", "*-manylinux_i686", "*-musllinux_x86_64"]
229+
skip = [
230+
"*-musllinux_i686",
231+
"*-manylinux_i686",
232+
"*-musllinux_x86_64",
233+
"*-musllinux_aarch64",
234+
]
230235
environment = { "HATCH_BUILD_HOOKS_ENABLE" = "true" }
231236
manylinux-x86_64-image = "quay.io/pypa/manylinux_2_34_x86_64"
232237
manylinux-aarch64-image = "quay.io/pypa/manylinux_2_34_aarch64"
238+
[tool.cibuildwheel.linux]
239+
before-all = "curl -sSf https://sh.rustup.rs | sh -s -- -y"
240+
environment = { "PATH" = "$HOME/.cargo/bin:$PATH" }

0 commit comments

Comments
 (0)