more macOS tweaks #7027
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: [push, pull_request] | |
name: Build from SVN | |
concurrency: | |
group: ${{ github.event.pull_request.number || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
linux: | |
name: Linux | |
runs-on: ubuntu-latest | |
container: | |
image: ${{matrix.OS}} | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
R_CRAN_WEB: "https://cran.rstudio.com" | |
CRAN_RSYNC: 'mirrors.nic.cz::CRAN' | |
strategy: | |
fail-fast: false | |
matrix: | |
CC: [ gcc, clang ] | |
OS: [ 'debian:stable', 'debian:testing' ] | |
steps: | |
- name: System dependencies | |
run: | | |
set -e | |
apt-get update -y | |
apt-get install -y ${{matrix.CC}} wget locales git rsync gfortran xvfb autoconf pkg-config texinfo texlive-latex-extra texlive-fonts-recommended tk8.6-dev \ | |
libcurl4-openssl-dev libblas-dev libbz2-dev libicu-dev libjpeg-dev liblapack-dev liblzma-dev libncurses5-dev libpcre2-dev libpng-dev libtiff-dev libcairo2-dev libpango1.0-dev libreadline-dev libxt-dev | |
localedef -i en_US -f UTF-8 en_US.UTF-8 | |
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- name: Prepare | |
run: | | |
git config --global --add safe.directory $PWD || true | |
sed -i.bak 's|$(GIT) svn info|./.github/scripts/svn-info.sh|' Makefile.in | |
./.github/scripts/wget-recommended.sh | |
./.github/scripts/svn-info.sh | |
- name: Configure | |
run: CC=${{matrix.CC}} ./configure --enable-R-shlib --with-blas --with-lapack --disable-java | |
- name: Build | |
run: make | |
- name: Check | |
run: xvfb-run make check-all | |
- name: Print failed tests | |
if: always() | |
run: tail -n100 tests/*.fail || true | |
macos: | |
name: MacOS | |
strategy: | |
fail-fast: false | |
matrix: | |
OS: [ 'macOS-13', 'macOS-14' ] | |
runs-on: ${{matrix.OS}} | |
timeout-minutes: 90 | |
env: | |
PKG_CONFIG_PATH: /opt/X11/lib/pkgconfig | |
R_CRAN_WEB: "https://cran.rstudio.com" | |
CRAN_RSYNC: 'mirrors.nic.cz::CRAN' | |
R_TEXI2DVICMD: emulation | |
steps: | |
- name: Download CRAN system libraries | |
run: | | |
echo "ARCH=$(uname -m)" >> $GITHUB_ENV | |
curl --retry 3 -fsSL https://github.com/r-universe-org/cranlibs/releases/download/2023-12-18/cranlibs-everything.tar.xz -o libs.tar.xz | |
sudo tar -xf libs.tar.xz -C / opt | |
rm -f libs.tar.xz | |
- name: Remove homebrew | |
run: | | |
echo "/opt/R/${ARCH}/bin" >> $GITHUB_PATH | |
echo "CPPFLAGS=-I/opt/R/${ARCH}/include" >> $GITHUB_ENV | |
echo "PKG_CONFIG_PATH=/opt/R/${ARCH}/lib/pkgconfig:/opt/R/${ARCH}/share/pkgconfig" >> $GITHUB_ENV | |
echo "/Library/TeX/texbin" >> $GITHUB_PATH | |
echo "/usr/local/opt/texinfo/bin" >> $GITHUB_PATH | |
cp -fv $(which wget) "/opt/R/${ARCH}/bin" | |
brew unlink $(brew list --formula) || true | |
- name: Install CRAN fortran build | |
run: | | |
curl --retry 3 -fsSLO https://github.com/R-macos/gcc-12-branch/releases/download/12.2-darwin-r0.1/gfortran-12.2-universal.pkg | |
sudo installer -pkg "gfortran-12.2-universal.pkg" -target / | |
rm -f gfortran-12.2-universal.pkg | |
echo "/opt/gfortran/bin" >> $GITHUB_PATH | |
echo "FC=/opt/gfortran/bin/gfortran" >> $GITHUB_ENV | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- name: Prepare | |
run: | | |
sed -i.bak 's|$(GIT) svn info|./.github/scripts/svn-info.sh|' Makefile.in | |
./.github/scripts/wget-recommended.sh | |
./.github/scripts/svn-info.sh | |
- name: Configure | |
run: CC=clang ./configure --prefix=/opt/R/${ARCH}/r-devel --disable-java --with-cairo --without-tcltk --without-x --with-aqua $ACCELERATE --enable-R-shlib SED=/usr/bin/sed | |
env: | |
PDFLATEX: ${{github.workspace}}/.github/scripts/dummy | |
ACCELERATE: ${{ matrix.OS != 'macOS-13' && '--with-lapack --with-blas' || '' }} | |
- name: Build | |
run: make | |
env: | |
PDFLATEX: ${{github.workspace}}/.github/scripts/dummy | |
- name: Install | |
run: | | |
mkdir -p /opt/R/${ARCH}/r-devel | |
make install DESTDIR="/opt/R/${ARCH}/r-devel" | |
(cd /opt/R/${ARCH}/r-devel; tar cfJ "/opt/R/r-devel-${ARCH}.tar.xz" .) | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: R-devel-${{ matrix.OS == 'macOS-13' && 'x86_64' || 'arm64' }} | |
path: /opt/R/r-devel-${{ matrix.OS == 'macOS-13' && 'x86_64' || 'arm64' }}.tar.xz | |
- name: Check | |
run: make check-all | |
env: | |
PDFLATEX: ${{github.workspace}}/.github/scripts/dummy | |
- name: Print failed tests | |
if: always() | |
run: tail -n100 tests/*.fail || true | |
windows: | |
name: Windows | |
runs-on: windows-latest | |
timeout-minutes: 120 | |
env: | |
R_CRAN_WEB: "https://cran.rstudio.com" | |
CRAN_RSYNC: 'mirrors.nic.cz::CRAN' | |
defaults: | |
run: | |
shell: msys2 {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
script: [ 'check', 'installer' ] | |
steps: | |
- name: Prepare git | |
run: git config --global core.autocrlf false | |
shell: bash | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MSYS | |
install: git make perl curl texinfo texinfo-tex rsync zip unzip diffutils | |
- name: "Download rtools44 toolchain" | |
run: | | |
url="https://github.com/r-windows/rtools-chocolatey/releases/download/6104/rtools44-toolchain-libs-base-6104.tar.zst" | |
curl -sSL $url | tar x --zstd -C /c/ || true | |
#echo "RTOOLS44_HOME=c:" >> $GITHUB_ENV | |
#echo "R_CUSTOM_TOOLS_SOFT=c:/x86_64-w64-mingw32.static.posix" >> $GITHUB_ENV | |
- name: Set timezone | |
shell: powershell | |
run: tzutil /s "GMT Standard Time" | |
- uses: r-lib/actions/setup-tinytex@v2 | |
env: | |
TINYTEX_INSTALLER: TinyTeX | |
- name: Install additional LaTeX packages | |
run: | | |
tlmgr update --self | |
tlmgr install texinfo | |
tlmgr list --only-installed | |
shell: powershell | |
- name: Build and Check | |
run: | | |
sed -i.bak 's/rsync -rc/rsync -r/' tools/rsync-recommended | |
./.github/scripts/win-${{matrix.script}}.sh | |
- name: Print failed tests | |
if: failure() && matrix.script == 'check' | |
run: tail -n100 tests/*.fail | |
- name: Run Installer | |
run: .\src\gnuwin32\installer\R-devel-win.exe /SILENT | |
if: matrix.script == 'installer' | |
shell: powershell | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: installer | |
path: src/gnuwin32/installer/R-devel-win.exe | |
if: matrix.script == 'installer' |