Skip to content

Backport #1690 to release-1.4 #3461

Backport #1690 to release-1.4

Backport #1690 to release-1.4 #3461

Workflow file for this run

name: TileDB-SOMA R CI
on:
pull_request:
paths-ignore:
- "apis/python/**"
- ".pre-commit-config.yaml"
push:
branches:
- main
- 'release-*'
workflow_dispatch:
env:
COVERAGE_FLAGS: "r"
COVERAGE_TOKEN: ${{ secrets.CODECOV_TOKEN }}
jobs:
ci:
strategy:
matrix:
include:
- name: linux
os: ubuntu-latest
covr: 'no'
- name: macos
os: macOS-latest
covr: 'no'
- name: coverage
os: ubuntu-latest
covr: 'yes'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Bootstrap
run: cd apis/r && tools/r-ci.sh bootstrap
- name: Install BioConductor package SingleCellExperiment
run: cd apis/r && tools/r-ci.sh install_bioc SingleCellExperiment
# The next two stanzas are necessary given propagation delay for binaries at
# https://r2u.stat.illinois.edu/ which may lack binaries (for short periods of usually a day)
# when sources have been updated. The default installation could switch to installation from
# sources --- but that would require installing all build dependencies. To see what the most
# recent binary is run e.g. docker run --rm -ti rocker/r2u bash -c 'apt update -qq &&
# apt-cache show r-cran-tiledb' Using the r-universe builds (as below) is a suitable fallback
# as they update more frequently than CRAN.
# Uncomment these next two stanzas as needed whenever we've just released a new tiledb-r for
# which source is available but binaries are not yet:
#- name: Install r-universe build of tiledb-r (macOS)
# if: ${{ matrix.os == 'macOS-latest' }}
# run: cd apis/r && Rscript -e "install.packages('tiledb', repos = c('https://eddelbuettel.r-universe.dev', 'https://cloud.r-project.org'))"
# docker run --rm -ti rocker/r2u Rscript -e 'install.packages("tiledb")'
#- name: Install r-universe build of tiledb-r (linux)
# if: ${{ matrix.os != 'macOS-latest' }}
# run: cd apis/r && Rscript -e "options(bspm.version.check=TRUE); install.packages('tiledb', repos = c('https://eddelbuettel.r-universe.dev/bin/linux/jammy/4.3/', 'https://cloud.r-project.org'))"
- name: Dependencies
run: cd apis/r && tools/r-ci.sh install_all
- name: CMake
uses: lukka/get-cmake@latest
#- name: MkVars
# run: mkdir ~/.R && echo "CXX17FLAGS=-Wno-deprecated-declarations -Wno-deprecated" > ~/.R/Makevars
#- name: Build and install libtiledbsoma
# run: sudo scripts/bld --prefix=/usr/local
#- name: Call ldconfig
# if: ${{ matrix.os == 'ubuntu-latest' }}
# run: sudo ldconfig
#
- name: Update Packages
run: Rscript -e 'update.packages(ask=FALSE)'
- name: Pin TileDB-R
run: Rscript -e 'remotes::install_github(repo="TileDB-Inc/[email protected]")'
- name: Test
if: ${{ matrix.covr == 'no' }}
run: cd apis/r && tools/r-ci.sh run_tests
- name: View Install Output
run: cat $HOME/work/TileDB-SOMA/TileDB-SOMA/apis/r/tiledbsoma.Rcheck/00install.out
if: failure()
- name: View Test Output
run: cat $HOME/work/TileDB-SOMA/TileDB-SOMA/apis/r/tiledbsoma.Rcheck/00check.log
if: failure()
- name: Coverage
if: ${{ matrix.os == 'ubuntu-latest' && matrix.covr == 'yes' }}
run: cd apis/r && tools/r-ci.sh coverage