From 16bda91db06784bc65fe35cdf0d1730dc05ab5f3 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 17 Jan 2025 12:08:46 +1100 Subject: [PATCH 1/2] Use arm64 runner for Ubuntu --- .github/workflows/build.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 360e9fac..64ebd5b5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,13 +10,13 @@ concurrency: jobs: build: name: ${{ matrix.image }} - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: + os: ["ubuntu-latest"] image: # Run slower jobs first to give them a headstart and reduce waiting time - - "ubuntu-22.04-jammy-arm64v8" - "ubuntu-24.04-noble-ppc64le" - "ubuntu-24.04-noble-s390x" # test image for manylinux-wheel build @@ -44,8 +44,7 @@ jobs: - image: "manylinux_2_28-wheel-build" test-image: "fedora-41-amd64" - image: "ubuntu-22.04-jammy-arm64v8" - qemu-arch: "aarch64" - docker-args: "--platform linux/arm64" + os: "ubuntu-24.04-arm" - image: "ubuntu-24.04-noble-ppc64le" qemu-arch: "ppc64le" docker-args: "--platform linux/ppc64le" From 8e267b831ef08c9d058bfa0f3b5720a0144d6f31 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 17 Jan 2025 12:15:40 +1100 Subject: [PATCH 2/2] Restored Ubuntu 24.04 arm64v8 --- .github/workflows/build.yml | 4 +- Makefile | 2 +- .../ubuntu-22.04-jammy-arm64v8}/Dockerfile | 0 .../ubuntu-22.04-jammy-arm64v8}/Makefile | 0 .../ubuntu-22.04-jammy-arm64v8}/test.sh | 0 .../ubuntu-22.04-jammy-arm64v8}/update.sh | 0 ubuntu-24.04-noble-arm64v8/Dockerfile | 51 +++++++++++++++++++ ubuntu-24.04-noble-arm64v8/Makefile | 1 + ubuntu-24.04-noble-arm64v8/test.sh | 6 +++ ubuntu-24.04-noble-arm64v8/update.sh | 2 + 10 files changed, 63 insertions(+), 3 deletions(-) rename {ubuntu-22.04-jammy-arm64v8 => archive/ubuntu-22.04-jammy-arm64v8}/Dockerfile (100%) rename {ubuntu-22.04-jammy-arm64v8 => archive/ubuntu-22.04-jammy-arm64v8}/Makefile (100%) rename {ubuntu-22.04-jammy-arm64v8 => archive/ubuntu-22.04-jammy-arm64v8}/test.sh (100%) rename {ubuntu-22.04-jammy-arm64v8 => archive/ubuntu-22.04-jammy-arm64v8}/update.sh (100%) create mode 100644 ubuntu-24.04-noble-arm64v8/Dockerfile create mode 120000 ubuntu-24.04-noble-arm64v8/Makefile create mode 100755 ubuntu-24.04-noble-arm64v8/test.sh create mode 100755 ubuntu-24.04-noble-arm64v8/update.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 64ebd5b5..756c1d86 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,14 +43,14 @@ jobs: test-image: "fedora-41-amd64" - image: "manylinux_2_28-wheel-build" test-image: "fedora-41-amd64" - - image: "ubuntu-22.04-jammy-arm64v8" - os: "ubuntu-24.04-arm" - image: "ubuntu-24.04-noble-ppc64le" qemu-arch: "ppc64le" docker-args: "--platform linux/ppc64le" - image: "ubuntu-24.04-noble-s390x" qemu-arch: "s390x" docker-args: "--platform linux/s390x" + - image: "ubuntu-24.04-noble-arm64v8" + os: "ubuntu-24.04-arm" steps: - uses: actions/checkout@v4 diff --git a/Makefile b/Makefile index eefd06a4..2c866dcc 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ TARGETS = \ ubuntu-22.04-jammy-amd64 \ ubuntu-24.04-noble-amd64 \ ubuntu-22.04-jammy-amd64-valgrind \ - ubuntu-22.04-jammy-arm64v8 \ + ubuntu-24.04-noble-arm64v8 \ ubuntu-24.04-noble-ppc64le \ ubuntu-24.04-noble-s390x diff --git a/ubuntu-22.04-jammy-arm64v8/Dockerfile b/archive/ubuntu-22.04-jammy-arm64v8/Dockerfile similarity index 100% rename from ubuntu-22.04-jammy-arm64v8/Dockerfile rename to archive/ubuntu-22.04-jammy-arm64v8/Dockerfile diff --git a/ubuntu-22.04-jammy-arm64v8/Makefile b/archive/ubuntu-22.04-jammy-arm64v8/Makefile similarity index 100% rename from ubuntu-22.04-jammy-arm64v8/Makefile rename to archive/ubuntu-22.04-jammy-arm64v8/Makefile diff --git a/ubuntu-22.04-jammy-arm64v8/test.sh b/archive/ubuntu-22.04-jammy-arm64v8/test.sh similarity index 100% rename from ubuntu-22.04-jammy-arm64v8/test.sh rename to archive/ubuntu-22.04-jammy-arm64v8/test.sh diff --git a/ubuntu-22.04-jammy-arm64v8/update.sh b/archive/ubuntu-22.04-jammy-arm64v8/update.sh similarity index 100% rename from ubuntu-22.04-jammy-arm64v8/update.sh rename to archive/ubuntu-22.04-jammy-arm64v8/update.sh diff --git a/ubuntu-24.04-noble-arm64v8/Dockerfile b/ubuntu-24.04-noble-arm64v8/Dockerfile new file mode 100644 index 00000000..92e1afea --- /dev/null +++ b/ubuntu-24.04-noble-arm64v8/Dockerfile @@ -0,0 +1,51 @@ +FROM arm64v8/ubuntu:noble + +RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ + cmake \ + ghostscript \ + git \ + libfreetype6-dev \ + libfribidi-dev \ + libharfbuzz-dev \ + libimagequant-dev \ + libjpeg-turbo8-dev \ + liblcms2-dev \ + libopenjp2-7-dev \ + libssl-dev \ + libtiff5-dev \ + libwebp-dev \ + meson \ + netpbm \ + python3-dev \ + python3-numpy \ + python3-setuptools \ + python3-tk \ + sudo \ + tcl8.6-dev \ + tk8.6-dev \ + virtualenv \ + wget \ + xvfb \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd pillow \ + && mkdir /home/pillow \ + && chown pillow:pillow /home/pillow + +ARG PIP_DISABLE_PIP_VERSION_CHECK=1 +ARG PIP_NO_CACHE_DIR=1 + +RUN virtualenv -p /usr/bin/python3.12 --system-site-packages /vpy3 \ + && /vpy3/bin/pip install --upgrade pip \ + && /vpy3/bin/pip install olefile pytest pytest-cov pytest-timeout \ + && chown -R pillow:pillow /vpy3 + +ADD depends /depends +RUN cd /depends \ + && ./install_raqm.sh + +USER pillow +CMD ["depends/test.sh"] + +#docker run -v $GITHUB_WORKSPACE:/Pillow pythonpillow/ubuntu-24.04-noble-arm64v8 diff --git a/ubuntu-24.04-noble-arm64v8/Makefile b/ubuntu-24.04-noble-arm64v8/Makefile new file mode 120000 index 00000000..5e7b0e26 --- /dev/null +++ b/ubuntu-24.04-noble-arm64v8/Makefile @@ -0,0 +1 @@ +../Makefile.sub \ No newline at end of file diff --git a/ubuntu-24.04-noble-arm64v8/test.sh b/ubuntu-24.04-noble-arm64v8/test.sh new file mode 100755 index 00000000..a79cfc3d --- /dev/null +++ b/ubuntu-24.04-noble-arm64v8/test.sh @@ -0,0 +1,6 @@ +#!/bin/bash +source /vpy3/bin/activate +cd /Pillow +make clean +make install-coverage +/usr/bin/xvfb-run -a .ci/test.sh diff --git a/ubuntu-24.04-noble-arm64v8/update.sh b/ubuntu-24.04-noble-arm64v8/update.sh new file mode 100755 index 00000000..4f18fbcf --- /dev/null +++ b/ubuntu-24.04-noble-arm64v8/update.sh @@ -0,0 +1,2 @@ +#!/bin/sh +docker pull arm64v8/ubuntu:noble