diff --git a/.Rbuildignore b/.Rbuildignore index 8f14f0f..9ac7e8e 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -5,3 +5,4 @@ ^inst/scripts/HCATonsilDataRNA$ ^inst/scripts/rna_raw_data$ ^inst/scripts/cite_raw_data$ +^\.github$ diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000..71bcb52 --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,126 @@ +on: + push: + pull_request: + branches: + - devel + schedule: + - cron: '0 8 * * 5' + +name: R-CMD-check + +jobs: + R-CMD-check: + runs-on: ${{ matrix.config.os }} + container: ${{ matrix.config.image }} + + name: ${{ matrix.config.os }} (${{ matrix.config.bioc }} - ${{ matrix.config.image }}) + + strategy: + fail-fast: false + matrix: + config: + - { os: windows-latest, bioc: 'devel'} + - { os: macOS-latest, bioc: 'devel', curlConfigPath: '/usr/bin/'} + - { os: ubuntu-latest, bioc: 'devel'} + - { os: ubuntu-latest, image: 'bioconductor/bioconductor_docker:devel'} + + env: + R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + CRAN: ${{ matrix.config.cran }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + CURL_CONFIG: ${{ matrix.config.curlConfigPath }}curl-config + + steps: + - name: Check out repo + uses: actions/checkout@v2 + + - name: Set up R and install BiocManager + uses: grimbough/bioc-actions/setup-bioc@v1 + if: matrix.config.image == null + with: + bioc-version: ${{ matrix.config.bioc }} + + - name: Set up pandoc + uses: r-lib/actions/setup-pandoc@v2 + if: matrix.config.image == null + + - name: Install remotes + run: | + install.packages('remotes') + shell: Rscript {0} + + - name: Query dependencies + run: | + saveRDS(remotes::dev_package_deps(dependencies = TRUE, repos = c(getOption('repos'), BiocManager::repositories())), 'depends.Rds', version = 2) + shell: Rscript {0} + + - name: Cache R packages + if: runner.os != 'Windows' && matrix.config.image == null + uses: actions/cache@v1 + with: + path: ${{ env.R_LIBS_USER }} + key: ${{ runner.os }}-bioc-${{ matrix.config.bioc }}-${{ hashFiles('depends.Rds') }} + restore-keys: ${{ runner.os }}-bioc-${{ matrix.config.bioc }}- + + - name: Install system dependencies + if: runner.os == 'Linux' + env: + RHUB_PLATFORM: linux-x86_64-ubuntu-gcc + run: | + Rscript -e "remotes::install_github('r-hub/sysreqs')" + sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") + sudo -s eval "$sysreqs" + sudo apt-get update && sudo apt-get -y install libcurl4-openssl-dev libglpk-dev libharfbuzz-dev libfribidi-dev + + - name: Install system dependencies (macOS) + if: runner.os == 'macOS' + run: | + brew install cairo + brew install --cask xquartz + brew install harfbuzz + brew install fribidi + brew install fftw + + - name: Install dependencies + run: | + local_deps <- remotes::local_package_deps(dependencies = TRUE) + deps <- remotes::dev_package_deps(dependencies = TRUE, repos = BiocManager::repositories()) + BiocManager::install(local_deps[local_deps %in% deps$package[deps$diff != 0]], Ncpu = 2L) + remotes::install_cran('rcmdcheck', Ncpu = 2L) + shell: Rscript {0} + + - name: Session info + run: | + options(width = 100) + pkgs <- installed.packages()[, "Package"] + sessioninfo::session_info(pkgs, include_base = TRUE) + shell: Rscript {0} + + - name: Build, Install, Check + uses: grimbough/bioc-actions/build-install-check@v1 + + - name: Run BiocCheck + uses: grimbough/bioc-actions/run-BiocCheck@v1 + with: + arguments: '--no-check-bioc-views --no-check-bioc-help' + error-on: 'error' + + - name: Show testthat output + if: always() + run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true + shell: bash + + - name: Upload check results + if: failure() + uses: actions/upload-artifact@master + with: + name: ${{ runner.os }}-bioc-${{ matrix.config.bioc }}-results + path: check + + - name: Test coverage + if: matrix.config.os == 'macOS-latest' + run: | + install.packages("covr") + covr::codecov(token = "${{secrets.CODECOV_TOKEN}}") + shell: Rscript {0} diff --git a/README.md b/README.md index d351543..8eca778 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # HCATonsilData + +[![R-CMD-check](https://github.com/massonix/HCATonsilData/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/massonix/HCATonsilData/actions/workflows/R-CMD-check.yaml) + + HCATonsilData is an R/ExperimentHub package that provides easy access to single-cell RNA-seq (scRNA-seq), single-cell ATAC-seq (scATAC-seq), 10X Multiome, CITE-seq and spatial transcriptomics data (Visium) derived from the tonsil cell