Unverified Commit da174b8d authored by James Lamb's avatar James Lamb Committed by GitHub
Browse files

[ci] [R-package] add arm64 macOS R-package CI job (fixes #6481) (#6494)

parent fec9afa4
...@@ -104,6 +104,18 @@ if [[ $OS_NAME == "macos" ]]; then ...@@ -104,6 +104,18 @@ if [[ $OS_NAME == "macos" ]]; then
sudo installer \ sudo installer \
-pkg $(pwd)/R.pkg \ -pkg $(pwd)/R.pkg \
-target / || exit 1 -target / || exit 1
# install tidy v5.8.0
# ref: https://groups.google.com/g/r-sig-mac/c/7u_ivEj4zhM
TIDY_URL=https://github.com/htacg/tidy-html5/releases/download/5.8.0/tidy-5.8.0-macos-x86_64+arm64.pkg
curl -sL ${TIDY_URL} -o tidy.pkg
sudo installer \
-pkg $(pwd)/tidy.pkg \
-target /
# ensure that this newer version of 'tidy' is used by 'R CMD check'
# ref: https://cran.r-project.org/doc/manuals/R-exts.html#Checking-packages
export R_TIDYCMD=/usr/local/bin/tidy
fi fi
# fix for issue where CRAN was not returning {lattice} and {evaluate} when using R 3.6 # fix for issue where CRAN was not returning {lattice} and {evaluate} when using R 3.6
...@@ -263,20 +275,25 @@ fi ...@@ -263,20 +275,25 @@ fi
# this check makes sure that CI builds of the package # this check makes sure that CI builds of the package
# actually use MM_PREFETCH preprocessor definition # actually use MM_PREFETCH preprocessor definition
if [[ $R_BUILD_TYPE == "cran" ]]; then #
mm_prefetch_working=$( # _mm_prefetch will not work on arm64 architecture
cat $BUILD_LOG_FILE \ # ref: https://github.com/microsoft/LightGBM/issues/4124
| grep --count -E "checking whether MM_PREFETCH work.*yes" if [[ $ARCH != "arm64" ]]; then
) if [[ $R_BUILD_TYPE == "cran" ]]; then
else mm_prefetch_working=$(
mm_prefetch_working=$( cat $BUILD_LOG_FILE \
cat $BUILD_LOG_FILE \ | grep --count -E "checking whether MM_PREFETCH work.*yes"
| grep --count -E ".*Performing Test MM_PREFETCH - Success" )
) else
fi mm_prefetch_working=$(
if [[ $mm_prefetch_working -ne 1 ]]; then cat $BUILD_LOG_FILE \
echo "MM_PREFETCH test was not passed" | grep --count -E ".*Performing Test MM_PREFETCH - Success"
exit 1 )
fi
if [[ $mm_prefetch_working -ne 1 ]]; then
echo "MM_PREFETCH test was not passed"
exit 1
fi
fi fi
# this check makes sure that CI builds of the package # this check makes sure that CI builds of the package
......
...@@ -55,12 +55,6 @@ jobs: ...@@ -55,12 +55,6 @@ jobs:
r_version: 4.3 r_version: 4.3
build_type: cmake build_type: cmake
container: 'ubuntu:22.04' container: 'ubuntu:22.04'
- os: ubuntu-latest
task: r-package
compiler: clang
r_version: 3.6
build_type: cmake
container: 'ubuntu:18.04'
- os: ubuntu-latest - os: ubuntu-latest
task: r-package task: r-package
compiler: clang compiler: clang
...@@ -138,6 +132,13 @@ jobs: ...@@ -138,6 +132,13 @@ jobs:
r_version: 4.3 r_version: 4.3
build_type: cran build_type: cran
container: null container: null
# macos-14 = arm64
- os: macos-14
task: r-package
compiler: clang
r_version: 4.3
build_type: cran
container: null
steps: steps:
- name: Prevent conversion of line endings on Windows - name: Prevent conversion of line endings on Windows
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
...@@ -188,12 +189,12 @@ jobs: ...@@ -188,12 +189,12 @@ jobs:
CTAN_MIRROR: https://ctan.math.illinois.edu/systems/win32/miktex CTAN_MIRROR: https://ctan.math.illinois.edu/systems/win32/miktex
TINYTEX_INSTALLER: TinyTeX TINYTEX_INSTALLER: TinyTeX
- name: Setup and run tests on Linux and macOS - name: Setup and run tests on Linux and macOS
if: matrix.os == 'macos-13' || matrix.os == 'ubuntu-latest' if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')
shell: bash shell: bash
run: | run: |
export TASK="${{ matrix.task }}" export TASK="${{ matrix.task }}"
export COMPILER="${{ matrix.compiler }}" export COMPILER="${{ matrix.compiler }}"
if [[ "${{ matrix.os }}" == "macos-13" ]]; then if [[ "${{ matrix.os }}" =~ ^macos ]]; then
export OS_NAME="macos" export OS_NAME="macos"
elif [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then elif [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then
export OS_NAME="linux" export OS_NAME="linux"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment