@@ -110,22 +110,31 @@ jobs:
110110 {{ '${{ env.PKG_FILE }}' }}.sha512
111111
112112 linux-cpp :
113- name : C++ Binary Linux
114- runs-on : ubuntu-latest
113+ name : C++ Binary Linux {{ '${{ matrix.arch }}' }}
114+ runs-on : {{ '${{ matrix.runs-on }}' }}
115115 needs : source
116116 strategy :
117117 fail-fast : false
118+ matrix :
119+ include :
120+ - arch : x86_64
121+ runs-on : ubuntu-latest
122+ ubuntu : " 22.04"
123+ - arch : arm64
124+ runs-on : ubuntu-24.04-arm
125+ ubuntu : " 22.04"
118126 env :
119- PKG_ID : r-libarrow-linux-x86_64
120- PKG_FILE : r-libarrow-linux-x86_64 -{{ '${{ needs.source.outputs.pkg_version }}' }}.zip
127+ PKG_ID : r-libarrow-linux-{{ '${{ matrix.arch }}' }}
128+ PKG_FILE : r-libarrow-linux-{{ '${{ matrix.arch }}' }} -{{ '${{ needs.source.outputs.pkg_version }}' }}.zip
121129 steps :
122130 {{ macros.github_checkout_arrow()|indent }}
123131 {{ macros.github_change_r_pkg_version(is_fork, '${{ needs.source.outputs.pkg_version }}')|indent }}
124132 {{ macros.github_install_archery()|indent }}
125133 - name : Build libarrow
126134 shell : bash
127135 env :
128- UBUNTU : " 22.04"
136+ ARCH : {{ "${{ matrix.arch == 'x86_64' && 'amd64' || 'arm64v8' }}" }}
137+ UBUNTU : {{ '${{ matrix.ubuntu }}' }}
129138 {{ macros.github_set_sccache_envvars()|indent(8) }}
130139 run : |
131140 source arrow/ci/scripts/util_enable_core_dumps.sh
@@ -291,8 +300,8 @@ jobs:
291300 path : arrow_*
292301 test-linux-binary :
293302 needs : [source, linux-cpp]
294- name : Test binary {{ '${{ matrix.config.image }}' }}
295- runs-on : ubuntu-latest
303+ name : Test binary {{ '${{ matrix.config.image }}' }} {{ '${{ matrix.config.runner }}' }}
304+ runs-on : {{ '${{ matrix.config.runner }}' }}
296305 container : {{ '${{ matrix.config.image }}' }}
297306 strategy :
298307 fail-fast : false
@@ -303,13 +312,18 @@ jobs:
303312 # an OS that is not in the allowlist, so we have to opt-in to use the
304313 # binary. Other env vars used in r_docker_configure.sh can be added
305314 # here and wired up in the later steps.
306- - {image: "rhub/ubuntu-clang", libarrow_binary: "TRUE"}
315+ # x86_64 tests
316+ - {image: "rhub/ubuntu-clang", libarrow_binary: "TRUE", runner: "ubuntu-latest"}
307317 # fedora-clang-devel cannot use binaries bc of libc++ (uncomment to see the error)
308- # - {image: "rhub/fedora-clang-devel", libarrow_binary: "TRUE"}
309- - {image: "rhub/ubuntu-release"} # currently ubuntu-22.04
310- - {image: "rstudio/r-base:4.1-jammy"}
311- - {image: "rstudio/r-base:4.2-jammy"}
312- - {image: "rstudio/r-base:4.3-noble"}
318+ # - {image: "rhub/fedora-clang-devel", libarrow_binary: "TRUE", runner: "ubuntu-latest"}
319+ - {image: "rhub/ubuntu-release", runner: "ubuntu-latest"} # currently ubuntu-24.04
320+ - {image: "posit/r-base:4.3-noble", runner: "ubuntu-latest"}
321+ - {image: "posit/r-base:4.4-noble", runner: "ubuntu-latest"}
322+ - {image: "posit/r-base:4.5-noble", runner: "ubuntu-latest"}
323+ # ARM64 tests
324+ - {image: "posit/r-base:4.3-noble", runner: "ubuntu-24.04-arm"}
325+ - {image: "posit/r-base:4.4-noble", runner: "ubuntu-24.04-arm"}
326+ - {image: "posit/r-base:4.5-noble", runner: "ubuntu-24.04-arm"}
313327 steps :
314328 # Get the arrow checkout just for the docker config scripts
315329 # Don't need submodules for this (hence false arg to macro): they fail on
@@ -350,7 +364,7 @@ jobs:
350364 if : false
351365 needs : test-linux-binary
352366 runs-on : ubuntu-latest
353- container : " rstudio /r-base:4.2-centos7"
367+ container : " posit /r-base:4.2-centos7"
354368 steps :
355369 - uses : actions/download-artifact@v4
356370 with :
0 commit comments