Skip to content

Commit 61c85e4

Browse files
try arm64
1 parent 8bedab4 commit 61c85e4

File tree

1 file changed

+102
-2
lines changed

1 file changed

+102
-2
lines changed

.github/workflows/build.yml

Lines changed: 102 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ jobs:
395395
run: |
396396
${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_*.whl
397397
# Clean up test wheels
398-
rm -f wheelhouse/*-py3-none-linux_i386.whl
398+
rm -f wheelhouse/*-py3-none-linux_i*.whl
399399
cd /
400400
${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true
401401
cat /tmp/output
@@ -411,6 +411,106 @@ jobs:
411411
name: wheel-linux32-${{ matrix.raylib-platform }}-${{ matrix.python-version }}
412412
path: wheelhouse/*
413413

414+
build-linux-arm64:
415+
runs-on: ubuntu-22.04-arm
416+
strategy:
417+
matrix:
418+
python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14']
419+
raylib-platform: [ 'Desktop', 'SDL', 'DRM' ]
420+
steps:
421+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
422+
- uses: actions/checkout@v4
423+
with:
424+
submodules: recursive
425+
426+
- name: fix raygui bug
427+
run: |
428+
patch -p0 <raygui.h.diff
429+
430+
- name: Build SDL
431+
run: |
432+
wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.32.8.tar.gz
433+
tar xvfz release-2.32.8.tar.gz
434+
mkdir build
435+
cd build
436+
cmake ../SDL-release-2.32.8 -DSDL_SHARED=OFF -DSDL_STATIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release
437+
cmake --build . --config Release
438+
sudo cmake --install .
439+
440+
- name: Setup Python
441+
uses: actions/setup-python@v5
442+
with:
443+
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
444+
python-version: ${{ matrix.python-version }}
445+
446+
447+
448+
- name: Build raylib with SDL if selected
449+
run: |
450+
cd raylib-c
451+
mkdir build2
452+
cd build2
453+
cmake -DPLATFORM=${{ matrix.raylib-platform }} -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release ..
454+
make -j2
455+
sudo make install
456+
457+
- name: Copy extras
458+
run: |
459+
sudo cp -r raylib-c/src/external/glfw/include/GLFW /usr/local/include/
460+
sudo cp physac/src/physac.h /usr/local/include/
461+
sudo cp raygui/src/raygui.h /usr/local/include/
462+
463+
- name: Build raylib-python-cffi
464+
env:
465+
RAYLIB_PLATFORM: ${{ matrix.raylib-platform }}
466+
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig
467+
run: |
468+
${{ matrix.python-version }} -m pip install --upgrade pip
469+
${{ matrix.python-version }} -m pip install --upgrade cffi
470+
${{ matrix.python-version }} -m pip install --upgrade wheel
471+
${{ matrix.python-version }} -m pip install --upgrade setuptools
472+
${{ matrix.python-version }} -m pip install --upgrade build
473+
${{ matrix.python-version }} -m build --wheel
474+
python3 -m pip install --upgrade auditwheel
475+
python3 -m pip install --upgrade patchelf
476+
python3 -m auditwheel repair dist/*.whl
477+
shell: bash
478+
- name: Rename wheel for testing
479+
run: |
480+
# Rename wheelhouse wheels to be maximally compatible for testing
481+
for wheel in wheelhouse/raylib*.whl; do
482+
if [ -f "$wheel" ]; then
483+
basename=$(basename "$wheel")
484+
# Extract package and version using regex
485+
if [[ $basename =~ ^([^-]+)-([^-]+.*)-[^-]+-[^-]+-[^-]+\.whl$ ]]; then
486+
package="${BASH_REMATCH[1]}"
487+
version="${BASH_REMATCH[2]}"
488+
new_name="${package}-${version}-py3-none-linux_aarch64.whl"
489+
echo "Renaming: $basename -> $new_name"
490+
cp "$wheel" "wheelhouse/$new_name"
491+
fi
492+
fi
493+
done
494+
shell: bash
495+
- name: Test
496+
run: |
497+
${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_aarch64.whl
498+
# Clean up test wheels
499+
rm -f wheelhouse/*-py3-none-linux_aarch64.whl
500+
cd /
501+
${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true
502+
cat /tmp/output
503+
if grep -q "INFO: Initializing raylib" /tmp/output; then
504+
echo "Passed"
505+
else
506+
echo "Failed"
507+
exit 1
508+
fi
509+
- name: Upload build Artifact wheel
510+
uses: actions/upload-artifact@v4
511+
with:
512+
name: wheel-linux-arm64-${{ matrix.raylib-platform }}-${{ matrix.python-version }}
513+
path: wheelhouse/*
414514

415515

416516

@@ -688,7 +788,7 @@ jobs:
688788
path: dynamic/dist/*
689789

690790
merge:
691-
needs: [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux32, build-windows32, source-distro, dynamic-distro]
791+
needs: [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux-arm64, build-linux32, build-windows32, source-distro, dynamic-distro]
692792
runs-on: ubuntu-latest
693793
steps:
694794
- name: Merge All Artifacts

0 commit comments

Comments
 (0)