Skip to content

Crossbow

Crossbow #352315

Workflow file for this run

# 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.
# NOTE: must set "Crossbow" as name to have the badge links working in the
# github comment reports!
name: Crossbow
on:
push:
branches:
- "*-github-*"
env:
ARCHERY_DEBUG: 1
jobs:
macos-cran:
name: "m1-san on macOS"
runs-on: macOS-15
strategy:
fail-fast: false
steps:
- name: Checkout Arrow
uses: actions/checkout@v4
with:
fetch-depth: 1
path: arrow
repository: apache/arrow
ref: 596a60fa00d9d88bbe562602543474e8faf9ea5a
submodules: recursive
- name: Configure dependencies (macos)
run: |
brew install openssl
- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
r-version: devel
- name: Install dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
cache: false # cache does not work on across branches
working-directory: arrow/r
extra-packages: |
any::rcmdcheck
any::sys
- name: Setup the sanitizer
run: |
# From rhub/rhub's m1-san:
# https://github.com/r-hub/actions/blob/ab9b2fb5021f43bfd0ee977932e0a14d25f6e59e/run-check/scripts/mac-asan.sh
# Use XCode 16.3 ------------------------------------------------
sudo rm -f /Applications/Xcode.app
sudo ln -sfF /Applications/Xcode_16.3.app /Applications/Xcode.app
sudo xcode-select -s /Applications/Xcode.app
# Compile with sanitizers ---------------------------------------
mkdir -p ~/.R
cat >> ~/.R/Makevars <<EOF
CC+=-mmacos-version-min=15 -fsanitize=address,undefined
CXX+=-mmacos-version-min=15 -fsanitize=address,undefined
CXX11+=-mmacos-version-min=15 -fsanitize=address,undefined
CXX14+=-mmacos-version-min=15 -fsanitize=address,undefined
CXX17+=-mmacos-version-min=15 -fsanitize=address,undefined
CXX20+=-mmacos-version-min=15 -fsanitize=address,undefined
CXX23+=-mmacos-version-min=15 -fsanitize=address,undefined
REC_INSTALL_OPT=--dsym
EOF
# Need to patch the shell script, because these env vars --------
# do not go through a shell because of Apple security.
R=$(readlink `which R`)
head -1 ${R} >> /tmp/R
cat >> /tmp/R <<EOF
export DYLD_FORCE_FLAT_NAMESPACE=1
export DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
EOF
cat ${R} >> /tmp/R
chmod +x /tmp/R
sudo mv /tmp/R ${R}
- name: Install and check
env:
R_BIN: R
LIBARROW_BINARY: FALSE
run: |
export ARROW_SOURCE_HOME=$(pwd)/arrow
export INSTALL_ARGS="--no-test-load"
arrow/ci/scripts/r_sanitize.sh arrow
- name: Save the test output
uses: actions/upload-artifact@v4
with:
name: test-output
path: |
arrow/r/tests/
arrow/r/arrow.Rcheck/
!arrow/r/arrow.Rcheck/00_pkg_src/
!arrow/r/arrow.Rcheck/arrow/
if: always()