[r] Push ndim
down to C++
#6285
Workflow file for this run
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
name: TileDB-SOMA R CI | |
on: | |
pull_request: | |
paths: | |
- '**' | |
- '!**.md' | |
- '!.github/**' | |
- '.github/workflows/r-ci.yml' | |
- '!.pre-commit-config.yaml' | |
- '!apis/python/**' | |
- '!docs/**' | |
- '!LICENSE' | |
push: | |
branches: | |
- main | |
- 'release-*' | |
workflow_dispatch: | |
env: | |
COVERAGE_FLAGS: "r" | |
COVERAGE_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
_R_CHECK_TESTS_NLINES_: 0 | |
CATCHSEGV: "TRUE" | |
R_REMOTES_UPGRADE: "never" | |
TILEDB_SOMA_INIT_BUFFER_BYTES: 33554432 # accommodate tiny runners | |
jobs: | |
ci: | |
strategy: | |
fail-fast: false | |
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@v4 | |
- name: Show matrix OS | |
run: echo "matrix.os:" ${{ matrix.os }} | |
- name: Linux CPU info | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
run: cat /proc/cpuinfo | |
- name: MacOS CPU info | |
if: ${{ matrix.os == 'macOS-latest' }} | |
run: sysctl -a | grep cpu | |
- name: Bootstrap | |
run: cd apis/r && tools/r-ci.sh bootstrap | |
- name: Set additional repositories (macOS) | |
if: ${{ matrix.os != 'ubuntu-latest' }} | |
run: echo 'options(repos = c("https://tiledb-inc.r-universe.dev", getOption("repos")), timeout = 300L)' | tee -a ~/.Rprofile | |
- name: Set additional repositories (Linux) | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
run: | | |
rversion <- paste(strsplit(as.character(getRversion()), split = '\\.')[[1L]][1:2], collapse = '.') | |
codename <- system('. /etc/os-release; echo ${VERSION_CODENAME}', intern = TRUE) | |
repo <- "https://tiledb-inc.r-universe.dev" | |
(opt <- sprintf('options(repos = c("%s/bin/linux/%s/%s", "%s", getOption("repos")), timeout = 300L)', repo, codename, rversion, repo)) | |
cat(opt, "\n", file = "~/.Rprofile", append = TRUE) | |
shell: Rscript {0} | |
- name: Install tiledb-r | |
run: cd apis/r && Rscript tools/install-tiledb-r.R | |
- name: Install BioConductor package SingleCellExperiment | |
run: cd apis/r && tools/r-ci.sh install_bioc SingleCellExperiment | |
# Uncomment these next two stanzas as needed whenever we've just released a new tiledb-r for | |
# which source is available but CRAN releases (and hence update r2u binaries) are not yet: | |
# | |
# IMPORTANT: these two stanzas should remain uncommented _only_ during the propagation time | |
# between (a) publication of source for a new TileDB-R _upon which_ TileDB-SOMA depends in its | |
# apis/R/DESCRIPTION file and (b) appearance of binaries. | |
# | |
# Please see https://github.com/single-cell-data/TileDB-SOMA/wiki/Branches-and-releases which | |
# is crucial for anyone doing releases of TileDB-SOMA. | |
# | |
# Please edit both files in the same way: | |
# * r-ci.yml | |
# * r-python-interop-testing.yml | |
# | |
# Do not remove these comments until such time as we have eliminated our dependency on | |
# the TileDB-R package. | |
#- 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'))" | |
#- 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 && Rscript -e "remotes::install_deps(dependencies = TRUE, upgrade = FALSE)" | |
# - name: Install dataset packages from source (macOS) | |
# if: ${{ matrix.os == 'macOS-latest' }} | |
# run: cd apis/r && _CI_PKG_TYPE_=both _CI_USE_BIOC_=true Rscript tools/install_missing_deps.R | |
# - 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: Build Package | |
run: cd apis/r && R CMD build --no-build-vignettes --no-manual . | |
- name: Install Package | |
run: cd apis/r && R CMD INSTALL $(ls -1tr *.tar.gz | tail -1) | |
# - name: Diagnostics | |
# run: Rscript -e 'print(Sys.info())' | |
# - name: Downgrade TileDB-R if needed | |
# run: cd apis/r && Rscript tools/controlled_downgrade.R | |
#- name: Test | |
# if: ${{ matrix.covr == 'no' }} | |
# run: | | |
# cd apis/r | |
# Rscript -e "install.packages('devtools')" \ | |
# -e "devtools::install(upgrade = FALSE)" \ | |
# -e "testthat::test_local('tests/testthat', load_package = 'installed')" | |
- name: Test without new shape | |
if: ${{ matrix.covr == 'no' }} | |
run: cd apis/r/tests && Rscript testthat.R | |
# https://github.com/single-cell-data/TileDB-SOMA/issues/2407 | |
- name: Test with new shape | |
if: ${{ matrix.covr == 'no' }} | |
run: export SOMA_R_NEW_SHAPE=true && cd apis/r/tests && Rscript testthat.R | |
- name: Coverage | |
if: ${{ matrix.os == 'ubuntu-latest' && matrix.covr == 'yes' && github.event_name == 'workflow_dispatch' }} | |
run: apis/r/tools/r-ci.sh coverage | |
- name: View Logs | |
run: apis/r/tools/r-ci.sh dump_logs | |
if: failure() |