Skip to content

Check for too large C objects. Also avoids GCC warnings (currently tr… #7722

Check for too large C objects. Also avoids GCC warnings (currently tr…

Check for too large C objects. Also avoids GCC warnings (currently tr… #7722

Workflow file for this run

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'