This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new a0684aa1 chore(ci): Add Python development files to verification
images and build (#360)
a0684aa1 is described below
commit a0684aa1785d705f1cee43bbd7817019f0d3bd1d
Author: Dewey Dunnington <[email protected]>
AuthorDate: Fri Jan 12 17:58:23 2024 +0000
chore(ci): Add Python development files to verification images and build
(#360)
...also builds arm images in the arm runner instead of using emulation.
This is needed to run verification for Python (since we'll need to build
a Python extension).
---
.github/workflows/docker-build.yaml | 47 ++++++++++++++++++++++++++-----------
ci/docker/centos7.dockerfile | 2 +-
ci/docker/ubuntu.dockerfile | 2 +-
3 files changed, 35 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/docker-build.yaml
b/.github/workflows/docker-build.yaml
index 17f683a1..3ffd6b68 100644
--- a/.github/workflows/docker-build.yaml
+++ b/.github/workflows/docker-build.yaml
@@ -33,31 +33,38 @@ permissions:
jobs:
build-docker:
name: "docker-${{ matrix.config.platform }}-${{ matrix.config.arch }}"
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.config.runs_on }}
strategy:
fail-fast: false
matrix:
config:
- - { platform: "ubuntu", arch: "amd64" }
- - { platform: "fedora", arch: "amd64" }
- - { platform: "archlinux", arch: "amd64" }
- - { platform: "alpine", arch: "amd64" }
- - { platform: "centos7", arch: "amd64" }
+ - { runs_on: "ubuntu-latest", platform: "ubuntu", arch: "amd64" }
+ - { runs_on: "ubuntu-latest", platform: "fedora", arch: "amd64" }
+ - { runs_on: "ubuntu-latest", platform: "archlinux", arch: "amd64" }
+ - { runs_on: "ubuntu-latest", platform: "alpine", arch: "amd64" }
+ - { runs_on: "ubuntu-latest", platform: "centos7", arch: "amd64" }
- - { platform: "ubuntu", arch: "arm64" }
- - { platform: "alpine", arch: "arm64" }
- - { platform: "centos7", arch: "arm64" }
+ - { runs_on: ["self-hosted", "arm"], platform: "ubuntu", arch:
"arm64" }
+ - { runs_on: ["self-hosted", "arm"], platform: "fedora", arch:
"arm64" }
+ - { runs_on: ["self-hosted", "arm"], platform: "alpine", arch:
"arm64" }
+ - { runs_on: ["self-hosted", "arm"], platform: "centos7", arch:
"arm64" }
- - { platform: "alpine", arch: "s390x" }
+ - { runs_on: "ubuntu-latest", platform: "alpine", arch: "s390x" }
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
+ - name: Create Docker Context for Buildx
+ run: |
+ docker context create builders
+
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
+ with:
+ endpoint: builders
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
@@ -67,7 +74,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
- if: matrix.config.arch != 'amd64'
+ if: matrix.config.arch == 's390x'
uses: docker/setup-qemu-action@v2
- name: Build
@@ -76,7 +83,7 @@ jobs:
NANOARROW_PLATFORM: ${{ matrix.config.platform }}
DOCKER_DEFAULT_PLATFORM: "linux/${{ matrix.config.arch }}"
run: |
- docker compose build verify
+ docker-compose build verify
- name: Push
if: ${{ github.event_name != 'pull_request' && github.repository ==
'apache/arrow-nanoarrow'}}
@@ -85,7 +92,7 @@ jobs:
NANOARROW_PLATFORM: ${{ matrix.config.platform }}
DOCKER_DEFAULT_PLATFORM: "linux/${{ matrix.config.arch }}"
run: |
- docker compose push verify
+ docker-compose push verify
# Build some arch-agnostic images for non-verify docker bits
build-docker-manifest:
@@ -122,6 +129,17 @@ jobs:
ghcr.io/apache/arrow-nanoarrow:centos7 \
ghcr.io/apache/arrow-nanoarrow:centos7-arm64 --arch arm64
+ docker manifest create \
+ ghcr.io/apache/arrow-nanoarrow:fedora \
+ ghcr.io/apache/arrow-nanoarrow:fedora-amd64 \
+ ghcr.io/apache/arrow-nanoarrow:fedora-arm64
+ docker manifest annotate \
+ ghcr.io/apache/arrow-nanoarrow:fedora \
+ ghcr.io/apache/arrow-nanoarrow:fedora-amd64 --arch amd64
+ docker manifest annotate \
+ ghcr.io/apache/arrow-nanoarrow:fedora \
+ ghcr.io/apache/arrow-nanoarrow:fedora-arm64 --arch arm64
+
docker manifest create \
ghcr.io/apache/arrow-nanoarrow:alpine \
ghcr.io/apache/arrow-nanoarrow:alpine-amd64 \
@@ -141,5 +159,6 @@ jobs:
if: ${{ github.event_name != 'pull_request' && github.repository ==
'apache/arrow-nanoarrow'}}
run: |
docker manifest push ghcr.io/apache/arrow-nanoarrow:ubuntu
+ docker manifest push ghcr.io/apache/arrow-nanoarrow:fedora
docker manifest push ghcr.io/apache/arrow-nanoarrow:centos7
docker manifest push ghcr.io/apache/arrow-nanoarrow:alpine
diff --git a/ci/docker/centos7.dockerfile b/ci/docker/centos7.dockerfile
index 521100c1..7e069a28 100644
--- a/ci/docker/centos7.dockerfile
+++ b/ci/docker/centos7.dockerfile
@@ -20,7 +20,7 @@ ARG NANOARROW_ARCH
FROM --platform=linux/${NANOARROW_ARCH} centos:7
RUN yum install -y epel-release
-RUN yum install -y git gnupg curl R gcc-c++ gcc-gfortran cmake3
+RUN yum install -y git gnupg curl R gcc-c++ gcc-gfortran cmake3 python3-devel
# For Arrow C++. Use 9.0.0 because this version works fine with the default gcc
RUN curl -L
https://github.com/apache/arrow/archive/refs/tags/apache-arrow-9.0.0.tar.gz |
tar -zxf - && \
diff --git a/ci/docker/ubuntu.dockerfile b/ci/docker/ubuntu.dockerfile
index 4a95074b..e8ef10be 100644
--- a/ci/docker/ubuntu.dockerfile
+++ b/ci/docker/ubuntu.dockerfile
@@ -20,7 +20,7 @@ ARG NANOARROW_ARCH
FROM --platform=linux/${NANOARROW_ARCH} ubuntu:latest
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
- locales git cmake r-base gnupg curl valgrind gfortran python3-venv doxygen
pandoc lcov \
+ locales git cmake r-base gnupg curl valgrind gfortran python3-venv
python3-dev doxygen pandoc lcov \
libxml2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev
libharfbuzz-dev \
libjpeg-dev libpng-dev libtiff-dev