Skip to content

Commit 436cee1

Browse files
committed
Expand readme for wheelbuilder
1 parent 6739b52 commit 436cee1

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

Diff for: scripts/wheelbuilder/README.md

+48
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,51 @@ That can be useful to put things like package installations specific to GitHub A
3333
Just run the `build_wheels.py` script.
3434
It expects a URL to download the GraalPy release from.
3535
You can set the environment variable `PACKAGES_TO_BUILD` to a comma-separated list of package build scripts you want to consider.
36+
37+
You can build wheels locally.
38+
The way to go about it is to make sure to include the packages you care about in the packages.txt.
39+
40+
For Linux/amd64, I use [act](https://github.com/nektos/act/releases) on a Linux machine:
41+
```shell
42+
git clone https://github.com/oracle/graalpython
43+
cd graalpython
44+
VERSION=24.2.0
45+
BINDIR=. curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | bash
46+
echo "graalpy_url=https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy-$VERSION-linux-amd64.tar.gz" > .input
47+
podman system service -t 0 unix:///tmp/podman.sock &
48+
export DOCKER_HOST=unix:///tmp/podman.sock
49+
./act --env http_proxy=$http_proxy --env https_proxy=$https_proxy -W .github/workflows/build-linux-amd64-wheels.yml --artifact-server-path=$(pwd)/artifacts
50+
```
51+
52+
For Linux/aarch64, I use act on a mac, those are usually beefy ARM machines that a developer has in front of them, if we make sure the podman VM has enough memory.
53+
```shell
54+
git clone https://github.com/oracle/graalpython
55+
cd graalpython
56+
VERSION=24.2.0
57+
brew install act
58+
echo "graalpy_url=https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy-$VERSION-linux-aarch64.tar.gz" > .input
59+
podman machine init -m 16384 --now
60+
act --env http_proxy=$http_proxy --env https_proxy=$https_proxy -W .github/workflows/build-linux-aarch64-wheels.yml --artifact-server-path=$(pwd)/artifacts --container-architecture linux/aarch64
61+
```
62+
63+
For macOS/aarch64, you get no isolation from act, so I just run it directly.
64+
```shell
65+
git clone https://github.com/oracle/graalpython
66+
VERSION=24.2.0
67+
export GITHUB_RUN_ID=doesntMatterJustTriggerBrewInstallScripts
68+
export PIP_GRAALPY_PATCHES_URL="$(pwd)/graalpython/graalpython/lib-graalpython/patches"
69+
python3 -m venv wheelbuilder-venv
70+
. wheelbuilder-venv/bin/activate
71+
python3 graalpython/scripts/wheelbuilder/build_wheels.py https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy-$VERSION-macos-aarch64.tar.gz
72+
```
73+
74+
For Windows/amd64, you get no isolation from act, so I just run it directly in Visual Studio powershell.
75+
```shell
76+
git clone https://github.com/oracle/graalpython
77+
$VERSION="24.2.0"
78+
$env:GITHUB_RUN_ID="doesntMatterJustTriggerBrewInstallScripts"
79+
$env:PIP_GRAALPY_PATCHES_URL="$PWD/graalpython/graalpython/lib-graalpython/patches"
80+
python3 -m venv wheelbuilder-venv
81+
wheelbuilder-venv/scripts/activate
82+
python3 graalpython/scripts/wheelbuilder/build_wheels.py https://github.com/oracle/graalpython/releases/download/graal-$VERSION/graalpy-$VERSION-windows-amd64.zip
83+
```

0 commit comments

Comments
 (0)