You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by am...@apache.org on 2022/05/13 07:50:50 UTC

[arrow] branch master updated: ARROW-16402: [R][CI] Create new Archery Tasks

This is an automated email from the ASF dual-hosted git repository.

amolina pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new d9346927a0 ARROW-16402: [R][CI] Create new Archery Tasks
d9346927a0 is described below

commit d9346927a0cb79c53464c43c9f991907fca63f10
Author: Jacob Wujciak-Jens <ja...@wujciak.de>
AuthorDate: Fri May 13 09:50:39 2022 +0200

    ARROW-16402: [R][CI] Create new Archery Tasks
    
    This PR introduces two new archery docker task for future use in building the R nightlies in Crossbow.
    
    Closes #13131 from assignUser/ARROW-16402
    
    Lead-authored-by: Jacob Wujciak-Jens <ja...@wujciak.de>
    Co-authored-by: Neal Richardson <ne...@gmail.com>
    Signed-off-by: Alessandro Molina <am...@turbogears.org>
---
 ci/docker/centos-7-cpp.dockerfile | 37 ++++++++++++++++++++++++
 docker-compose.yml                | 60 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+)

diff --git a/ci/docker/centos-7-cpp.dockerfile b/ci/docker/centos-7-cpp.dockerfile
new file mode 100644
index 0000000000..945534900e
--- /dev/null
+++ b/ci/docker/centos-7-cpp.dockerfile
@@ -0,0 +1,37 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM centos:centos7
+
+RUN yum install -y \
+        diffutils \
+        gcc-c++ \
+        libcurl-devel \
+        make \
+        openssl-devel \
+        wget \
+        which
+
+# yum install cmake version is too old
+
+ARG cmake=3.23.1
+RUN wget -nv -O - https://github.com/Kitware/CMake/releases/download/v${cmake}/cmake-${cmake}-Linux-x86_64.tar.gz | tar -xzf - -C /opt
+ENV PATH=/opt/cmake-${cmake}-Linux-x86_64/bin:$PATH
+ENV CC=/usr/bin/gcc
+ENV CXX=/usr/bin/g++
+ENV EXTRA_CMAKE_FLAGS="-DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX"
+ENV ARROW_R_DEV=TRUE
diff --git a/docker-compose.yml b/docker-compose.yml
index f8b9dacfa2..406d310cbb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -96,6 +96,7 @@ x-hierarchy:
   # descendant images if any. Archery checks that all node has a corresponding
   # service entry, so any new image/service must be listed here.
   - almalinux-verify-rc
+  - centos-cpp-static
   - conda:
     - conda-cpp:
       - conda-integration
@@ -128,6 +129,7 @@ x-hierarchy:
   - oracle-java
   - python-sdist
   - ubuntu-cpp:
+    - ubuntu-cpp-static
     - ubuntu-c-glib:
       - ubuntu-ruby
     - ubuntu-lint
@@ -353,7 +355,65 @@ services:
       - .:/arrow:delegated
       - ${DOCKER_VOLUME_PREFIX}ubuntu-ccache:/ccache:delegated
     command: *cpp-command
+  
+  ubuntu-cpp-static:
+    # Usage:
+    #   docker-compose build ubuntu-cpp-static
+    #   docker-compose run --rm ubuntu-cpp-static
+    # Parameters:
+    #   ARCH: amd64, arm64v8, s390x, ...
+    #   UBUNTU: 18.04, 20.04
+    image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp-static
+    build:
+      context: .
+      dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
+      cache_from:
+        - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp-static
+      args:
+        arch: ${ARCH}
+        base: "${ARCH}/ubuntu:${UBUNTU}"
+        clang_tools: ${CLANG_TOOLS}
+        llvm: ${LLVM}
+        gcc_version: ${GCC_VERSION}
+    shm_size: *shm-size
+    cap_add:
+      - SYS_ADMIN
+    devices:
+      - "/dev/fuse:/dev/fuse"
+    security_opt:
+      - apparmor:unconfined
+    ulimits: *ulimits
+    environment:
+      <<: *ccache
+      ARROW_HOME: /arrow
+      ARROW_DEPENDENCY_SOURCE: BUNDLED
+      LIBARROW_MINIMAL: "false"
+      ARROW_MIMALLOC: "ON"
+    volumes: *ubuntu-volumes
+    command: /bin/bash -c "
+        cd /arrow && r/inst/build_arrow_static.sh"
 
+  centos-cpp-static:
+    image: ${REPO}:centos-7-cpp-static
+    build:
+      context: .
+      dockerfile: ci/docker/centos-7-cpp.dockerfile
+      cache_from:
+        - ${REPO}:centos-7-cpp-static
+    shm_size: *shm-size
+    volumes: 
+      - .:/arrow:delegated
+    environment:
+      <<: *ccache
+      ARROW_HOME: /arrow
+      ARROW_DEPENDENCY_SOURCE: BUNDLED
+      LIBARROW_MINIMAL: "false"
+      ARROW_MIMALLOC: "ON"
+    command: >
+      /bin/bash -c "
+        if grep -q -i -e 'centos.* 7' /etc/os-release; then export ARROW_S3=OFF ARROW_MIMALLOC=OFF; fi &&
+        cd /arrow && r/inst/build_arrow_static.sh"
+        
   ubuntu-cpp-bundled:
     # Arrow build with BUNDLED dependencies
     image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp-minimal