2020-07-08 14:48:06 +02:00
# ==================================================================== #
# TITLE #
2021-02-02 23:57:35 +01:00
# Antimicrobial Resistance (AMR) Data Analysis for R #
2020-07-08 14:48:06 +02:00
# #
# SOURCE #
# https://github.com/msberends/AMR #
# #
# LICENCE #
2021-12-23 18:56:28 +01:00
# (c) 2018-2022 Berends MS, Luz CF et al. #
2020-10-08 11:16:03 +02:00
# Developed at the University of Groningen, the Netherlands, in #
# collaboration with non-profit organisations Certe Medical #
# Diagnostics & Advice, and University Medical Center Groningen. #
2020-07-08 14:48:06 +02:00
# #
# This R package is free software; you can freely use and distribute #
# it for both personal and commercial purposes under the terms of the #
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
# the Free Software Foundation. #
# We created this package for both routine data analysis and academic #
# research and it was publicly released in the hope that it will be #
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
2020-10-08 11:16:03 +02:00
# #
# Visit our website for the full manual and a complete tutorial about #
2021-02-02 23:57:35 +01:00
# how to conduct AMR data analysis: https://msberends.github.io/AMR/ #
2020-07-08 14:48:06 +02:00
# ==================================================================== #
on :
push :
branches :
2021-09-29 16:36:03 +02:00
- development
- main
2020-07-08 14:48:06 +02:00
pull_request :
branches :
2021-09-29 16:36:03 +02:00
- main
2020-08-29 21:41:46 +02:00
schedule :
2021-06-04 21:07:55 +02:00
# run a schedule everyday at 1 AM.
2020-08-29 21:41:46 +02:00
# this is to check that all dependencies are still available (see R/zzz.R)
2021-06-04 21:07:55 +02:00
- cron : '0 1 * * *'
2020-07-08 14:48:06 +02:00
2020-07-08 20:43:25 +02:00
name : R-code-check
2020-07-08 14:48:06 +02:00
jobs :
2020-07-08 20:43:25 +02:00
R-code-check :
2020-07-08 14:48:06 +02:00
runs-on : ${{ matrix.config.os }}
2020-10-26 15:53:31 +01:00
continue-on-error : ${{ matrix.config.allowfail }}
2020-07-08 14:48:06 +02:00
2020-10-26 15:53:31 +01:00
name : ${{ matrix.config.os }} (R-${{ matrix.config.r }})
2020-07-08 14:48:06 +02:00
strategy :
fail-fast : false
matrix :
config :
2021-08-31 17:06:44 +02:00
# test all systems against all released versions of R >= 3.0, we support them all!
- {os: macOS-latest, r: 'devel', allowfail : true }
- {os: macOS-latest, r: '4.1', allowfail : false }
- {os: macOS-latest, r: '4.0', allowfail : false }
- {os: macOS-latest, r: '3.6', allowfail : false }
- {os: macOS-latest, r: '3.5', allowfail : false }
- {os: macOS-latest, r: '3.4', allowfail : false }
2022-04-08 11:02:45 +02:00
# - {os: macOS-latest, r: '3.3', allowfail: false}
# - {os: macOS-latest, r: '3.2', allowfail: false}
2021-12-12 11:36:58 +01:00
# - {os: macOS-latest, r: '3.1', allowfail: true}
# - {os: macOS-latest, r: '3.0', allowfail: true}
2021-08-31 17:06:44 +02:00
- {os: ubuntu-20.04, r: 'devel', allowfail: true, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '4.1', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '4.0', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.6', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.5', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.4', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.3', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.2', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.1', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: ubuntu-20.04, r: '3.0', allowfail: false, rspm : "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
- {os: windows-latest, r: 'devel', allowfail : true }
2021-06-15 10:51:04 +02:00
- {os: windows-latest, r: '4.1', allowfail : false }
- {os: windows-latest, r: '4.0', allowfail : false }
2021-08-16 21:54:34 +02:00
- {os: windows-latest, r: '3.6', allowfail : false }
2021-06-15 10:51:04 +02:00
- {os: windows-latest, r: '3.5', allowfail : false }
- {os: windows-latest, r: '3.4', allowfail : false }
2022-04-08 11:02:45 +02:00
# - {os: windows-latest, r: '3.3', allowfail: false}
2021-12-12 11:36:58 +01:00
# - {os: windows-latest, r: '3.2', allowfail: true}
# - {os: windows-latest, r: '3.1', allowfail: true}
# - {os: windows-latest, r: '3.0', allowfail: true}
2020-07-08 14:48:06 +02:00
env :
2021-09-29 20:24:02 +02:00
R_REMOTES_NO_ERRORS_FROM_WARNINGS : true
2020-07-08 14:48:06 +02:00
RSPM : ${{ matrix.config.rspm }}
2021-05-30 22:14:38 +02:00
R_REPOSITORIES : "https://cran.rstudio.com"
2021-10-03 13:50:52 +02:00
2020-07-08 14:48:06 +02:00
steps :
- uses : actions/checkout@v2
2021-12-22 09:44:10 +01:00
- uses : r-lib/actions/setup-r@v2
2020-07-08 14:48:06 +02:00
with :
r-version : ${{ matrix.config.r }}
2021-10-05 09:58:08 +02:00
2021-12-22 09:44:10 +01:00
- uses : r-lib/actions/setup-pandoc@v2
2021-10-03 13:50:52 +02:00
- name : Install Linux dependencies
if : runner.os == 'Linux'
# update the below with sysreqs::sysreqs("DESCRIPTION") and check the "DEB" entries (for Ubuntu).
# we don't want to depend on the sysreqs pkg here, as it requires quite a recent R version
2022-08-21 16:37:20 +02:00
# as of May 2021: https://sysreqs.r-hub.io/pkg/AMR,R,cleaner,curl,dplyr,ggplot2,knitr,microbenchmark,pillar,readxl,rmarkdown,rstudioapi,rvest,skimr,tidyr,tinytest,xml2,backports,crayon,rlang,vctrs,evaluate,highr,markdown,stringr,yaml,xfun,cli,ellipsis,fansi,lifecycle,utf8,glue,mime,magrittr,stringi,generics,R6,tibble,tidyselect,pkgconfig,purrr,digest,gtable,isoband,MASS,mgcv,scales,withr,nlme,Matrix,farver,labeling,munsell,RColorBrewer,viridisLite,lattice,colorspace,gridtext,Rcpp,RCurl,png,jpeg,bitops,cellranger,progress,rematch,hms,prettyunits,htmltools,jsonlite,tinytex,base64enc,httr,selectr,openssl,askpass,sys,repr,cpp11
2021-10-03 13:50:52 +02:00
run : |
2022-08-21 16:37:20 +02:00
sudo apt install -y libssl-dev libxml2-dev libcurl4-openssl-dev
2021-10-06 13:23:57 +02:00
2021-10-03 13:50:52 +02:00
- name : Restore cached R packages
# this step will add the step 'Post Restore cached R packages' on a succesful run
2021-10-06 13:23:57 +02:00
uses : actions/cache@v2
2021-10-03 13:50:52 +02:00
with :
path : ${{ env.R_LIBS_USER }}
key : ${{ matrix.config.os }}-r-${{ matrix.config.r }}-v4
- name : Unpack AMR and install R dependencies
2021-09-29 20:10:44 +02:00
if : always()
run : |
2021-10-03 13:50:52 +02:00
tar -xf data-raw/AMR_latest.tar.gz
Rscript -e "source('data-raw/_install_deps.R')"
shell : bash
2021-05-16 09:25:36 +02:00
- name : Show session info
2021-05-20 10:10:40 +02:00
if : always()
2020-07-08 14:48:06 +02:00
run : |
options(width = 100)
2020-12-29 21:23:01 +01:00
utils::sessionInfo()
as.data.frame(utils::installed.packages())[, "Version", drop = FALSE]
2020-07-08 14:48:06 +02:00
shell : Rscript {0}
2021-10-03 13:50:52 +02:00
2021-10-03 23:49:46 +02:00
- name : Remove vignettes on R without knitr support
if : matrix.config.r == '3.0' || matrix.config.r == '3.1' || matrix.config.r == '3.2'
# writing to DESCRIPTION2 and then moving to DESCRIPTION is required for R < 3.3 as writeLines() cannot overwrite
run : |
rm -rf AMR/vignettes
Rscript -e "writeLines(readLines('AMR/DESCRIPTION')[!grepl('VignetteBuilder', readLines('AMR/DESCRIPTION'))], 'AMR/DESCRIPTION2')"
rm AMR/DESCRIPTION
mv AMR/DESCRIPTION2 AMR/DESCRIPTION
shell : bash
2021-10-03 13:50:52 +02:00
- name : Run R CMD check
if : always()
2021-09-29 16:43:05 +02:00
env :
2021-09-29 20:10:44 +02:00
_R_CHECK_CRAN_INCOMING_ : false
_R_CHECK_FORCE_SUGGESTS_ : false
_R_CHECK_DEPENDS_ONLY_ : true
_R_CHECK_LENGTH_1_CONDITION_ : verbose
_R_CHECK_LENGTH_1_LOGIC2_ : verbose
2021-09-29 16:43:05 +02:00
# during 'R CMD check', R_LIBS_USER will be overwritten, so:
R_LIBS_USER_GH_ACTIONS : ${{ env.R_LIBS_USER }}
2021-10-03 13:50:52 +02:00
R_RUN_TINYTEST : true
run : |
R CMD check --no-manual --run-donttest --run-dontrun AMR
shell : bash
2021-05-15 22:30:11 +02:00
- name : Show unit tests output
2020-07-08 14:48:06 +02:00
if : always()
2021-10-03 13:50:52 +02:00
run : |
find . -name 'tinytest.Rout*' -exec cat '{}' \; || true
2020-07-08 14:48:06 +02:00
shell : bash
2021-10-03 13:50:52 +02:00
- name : Upload artifacts
2021-05-16 09:25:36 +02:00
if : always()
2021-10-03 13:50:52 +02:00
uses : actions/upload-artifact@v2
2020-07-08 14:48:06 +02:00
with :
2021-10-03 13:50:52 +02:00
name : artifacts-${{ matrix.config.os }}-r${{ matrix.config.r }}
path : AMR.Rcheck