From 1f964fc8885b8d25359318c5a2180fc15c904c06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Mon, 16 Sep 2024 10:36:24 +0200 Subject: [PATCH] GH-44085: [CI][R] Update Ubuntu version for R force test (#44087) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Rationale for this change We want to update the Ubuntu version to run the R force tests in order to be able to test pyarrow once it drops Python 3.8. ### What changes are included in this PR? Bumping Ubuntu to 24.04 and use virtualenv in order to avoid installing requirements at the system python which fails on newer Ubuntu. ### Are these changes tested? Yes, on CI ### Are there any user-facing changes? No * GitHub Issue: #44085 Authored-by: Raúl Cumplido Signed-off-by: Raúl Cumplido --- .github/workflows/r.yml | 2 +- ci/docker/linux-apt-r.dockerfile | 15 +++++++-------- ci/scripts/r_test.sh | 4 ++++ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 92e0e63fb7ea5..f7e661633626b 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -123,7 +123,7 @@ jobs: fail-fast: false matrix: r: ["4.4"] - ubuntu: [20.04] + ubuntu: [24.04] force-tests: ["true"] env: R: ${{ matrix.r }} diff --git a/ci/docker/linux-apt-r.dockerfile b/ci/docker/linux-apt-r.dockerfile index 630b96e1007b9..4be5adf246b88 100644 --- a/ci/docker/linux-apt-r.dockerfile +++ b/ci/docker/linux-apt-r.dockerfile @@ -58,6 +58,7 @@ RUN apt-get update -y && \ locales \ # Need Python to check py-to-r bridge python3 \ + python3-venv \ python3-pip \ python3-dev && \ locale-gen en_US.UTF-8 && \ @@ -81,15 +82,16 @@ RUN cat /arrow/ci/etc/rprofile >> $(R RHOME)/etc/Rprofile.site # Also ensure parallel compilation of C/C++ code RUN echo "MAKEFLAGS=-j$(R -s -e 'cat(parallel::detectCores())')" >> $(R RHOME)/etc/Renviron.site -# Set up Python 3 and its dependencies -RUN ln -s /usr/bin/python3 /usr/local/bin/python && \ - ln -s /usr/bin/pip3 /usr/local/bin/pip - COPY ci/scripts/r_deps.sh /arrow/ci/scripts/ COPY r/DESCRIPTION /arrow/r/ RUN /arrow/ci/scripts/r_deps.sh /arrow -RUN pip install -U pip setuptools wheel +ENV ARROW_PYTHON_VENV /arrow-dev +COPY python/requirements-build.txt /arrow/python/ +RUN python3 -m venv ${ARROW_PYTHON_VENV} && \ + source ${ARROW_PYTHON_VENV}/bin/activate && \ + pip install -U pip setuptools wheel && \ + pip install -r arrow/python/requirements-build.txt COPY ci/scripts/install_minio.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_minio.sh latest /usr/local @@ -97,9 +99,6 @@ RUN /arrow/ci/scripts/install_minio.sh latest /usr/local COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_gcs_testbench.sh default -COPY python/requirements-build.txt /arrow/python/ -RUN pip install -r arrow/python/requirements-build.txt - ENV \ ARROW_ACERO=ON \ ARROW_BUILD_STATIC=OFF \ diff --git a/ci/scripts/r_test.sh b/ci/scripts/r_test.sh index fe9d18edb8cbb..d5fd78914755e 100755 --- a/ci/scripts/r_test.sh +++ b/ci/scripts/r_test.sh @@ -26,6 +26,10 @@ pushd ${source_dir} printenv +if [ -n "${ARROW_PYTHON_VENV:-}" ]; then + . "${ARROW_PYTHON_VENV}/bin/activate" +fi + # Run the nixlibs.R test suite, which is not included in the installed package ${R_BIN} -e 'setwd("tools"); testthat::test_dir(".", stop_on_warning = TRUE)'