AMR/.gitlab-ci.yml

134 lines
5.0 KiB
YAML
Raw Normal View History

2018-12-30 08:40:40 +01:00
# ==================================================================== #
# TITLE #
# Antimicrobial Resistance (AMR) Analysis #
# #
2019-01-02 23:24:07 +01:00
# SOURCE #
# https://gitlab.com/msberends/AMR #
2018-12-30 08:40:40 +01:00
# #
# LICENCE #
2019-01-02 23:24:07 +01:00
# (c) 2019 Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) #
2018-12-30 08:40:40 +01:00
# #
2019-01-02 23:24:07 +01: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. #
# #
# This R package was created for academic research and was publicly #
# released in the hope that it will be useful, but it comes WITHOUT #
# ANY WARRANTY OR LIABILITY. #
2019-04-05 18:47:39 +02:00
# Visit our website for more info: https://msberends.gitlab.io/AMR. #
2018-12-30 08:40:40 +01:00
# ==================================================================== #
# to check with R-Hub:
# chck <- rhub::check_for_cran(devtools::build(args = c('--no-build-vignettes')))
2018-12-30 07:44:11 +01:00
stages:
2018-12-30 12:00:53 +01:00
- build
2019-01-02 23:24:07 +01:00
- test
2018-12-30 07:44:11 +01:00
- deploy
2019-04-06 16:13:09 +02:00
image: rocker/r-base
2018-12-30 07:44:11 +01:00
2018-12-30 12:00:53 +01:00
before_script:
2019-07-09 20:26:42 +02:00
- apt-get update -qq --allow-releaseinfo-change
2019-01-05 09:50:22 +01:00
# install dependencies for packages
2019-03-29 14:34:39 +01:00
- apt-get install -y wget locales libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev > /dev/null
2019-02-10 08:42:28 +01:00
# recent pandoc
2019-04-09 16:09:18 +02:00
- wget --quiet https://github.com/jgm/pandoc/releases/download/2.7.2/pandoc-2.7.2-1-amd64.deb
2019-02-10 08:42:28 +01:00
- dpkg -i pandoc*.deb
- rm pandoc*.deb
2019-01-05 15:14:38 +01:00
# set R system language
- echo "LC_ALL=en_US.UTF-8" >> /etc/environment
- echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
- echo "LANG=en_US.UTF-8" > /etc/locale.conf
2019-01-05 20:39:20 +01:00
- locale-gen
2019-01-05 09:50:22 +01:00
# cache R packages
- mkdir -p installed_deps
- echo 'R_LIBS="installed_deps"' > .Renviron
- echo 'R_LIBS_USER="installed_deps"' >> .Renviron
- echo 'R_LIBS_SITE="installed_deps"' >> .Renviron
2019-01-05 22:18:49 +01:00
# set language
2019-01-05 21:08:56 +01:00
- echo 'LANGUAGE="en_US.utf8"' >> .Renviron
2019-01-05 22:18:49 +01:00
- echo 'LANG="en_US.utf8"' >> .Renviron
2019-01-05 21:40:04 +01:00
- echo 'LANGUAGE="en_US.utf8"' > ~/.Renviron
2018-12-30 08:40:40 +01:00
2019-03-29 14:34:39 +01:00
R-release:
2018-12-30 12:00:53 +01:00
stage: build
2019-04-09 10:34:40 +02:00
allow_failure: false
2018-12-30 07:44:11 +01:00
script:
2019-03-29 14:34:39 +01:00
- Rscript -e 'sessionInfo()'
# install missing and outdated packages
- Rscript -e 'source(".gitlab-ci.R"); gl_update_pkg_all(repos = "https://cran.rstudio.com", quiet = TRUE, install_pkgdown = TRUE)'
# remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file
- rm -rf vignettes
- Rscript -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")'
# build package
- R CMD build . --no-build-vignettes --no-manual
- PKG_FILE_NAME=$(ls -1t *.tar.gz | head -n 1)
- R CMD check "${PKG_FILE_NAME}" --no-build-vignettes --no-manual --as-cran
artifacts:
2019-04-06 16:50:59 +02:00
when: always
2019-03-29 14:34:39 +01:00
paths:
- '*.Rcheck/*'
expire_in: '1 month'
2019-04-07 10:27:46 +02:00
cache:
2019-05-17 09:21:26 +02:00
key: r350
2019-04-07 10:27:46 +02:00
paths:
- installed_deps/
2019-03-29 14:34:39 +01:00
R-devel:
stage: build
2019-03-29 14:51:55 +01:00
image: rocker/r-devel
2019-03-29 14:34:39 +01:00
allow_failure: true
script:
2019-03-29 21:45:46 +01:00
- Rscriptdevel -e 'sessionInfo()'
2019-03-29 14:34:39 +01:00
# install missing and outdated packages
2019-03-29 21:45:46 +01:00
- Rscriptdevel -e 'source(".gitlab-ci.R"); gl_update_pkg_all(repos = "https://cran.rstudio.com", quiet = TRUE, install_pkgdown = TRUE)'
2018-12-30 12:00:53 +01:00
# remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file
2019-01-05 21:51:48 +01:00
- rm -rf vignettes
2019-03-29 21:45:46 +01:00
- Rscriptdevel -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")'
2018-12-30 12:00:53 +01:00
# build package
2019-03-29 21:45:46 +01:00
- Rdevel CMD build . --no-build-vignettes --no-manual
2018-12-30 12:00:53 +01:00
- PKG_FILE_NAME=$(ls -1t *.tar.gz | head -n 1)
2019-03-29 21:45:46 +01:00
- Rdevel CMD check "${PKG_FILE_NAME}" --no-build-vignettes --no-manual --as-cran
2018-12-30 12:00:53 +01:00
artifacts:
2019-04-06 16:50:59 +02:00
when: always
2018-12-30 12:00:53 +01:00
paths:
2019-01-02 23:24:07 +01:00
- '*.Rcheck/*'
2018-12-30 12:00:53 +01:00
expire_in: '1 month'
2019-05-16 21:20:00 +02:00
cache:
2019-05-17 09:21:26 +02:00
key: r360
2019-05-16 21:20:00 +02:00
paths:
- installed_deps/
2018-12-24 12:12:05 +01:00
2019-01-02 23:24:07 +01:00
coverage:
stage: test
allow_failure: true
when: on_success
2019-04-09 16:09:18 +02:00
cache:
2019-05-17 09:21:26 +02:00
key: r350
2019-04-09 16:09:18 +02:00
paths:
- installed_deps/
2019-05-17 09:21:26 +02:00
policy: pull # no uploading after run
2019-01-02 23:24:07 +01:00
only:
2019-03-01 09:34:04 +01:00
- premaster
2019-01-02 23:24:07 +01:00
- master
script:
2019-04-07 10:27:46 +02:00
- apt-get install --yes git
# install missing and outdated packages
2019-08-03 21:51:08 +02:00
- Rscript -e 'source(".gitlab-ci.R"); gl_update_pkg_all(repos = "https://cran.rstudio.com", quiet = TRUE, install_pkgdown = FALSE)'
2019-04-07 10:27:46 +02:00
# codecov token is set in https://gitlab.com/msberends/AMR/settings/ci_cd
2019-08-04 11:33:56 +02:00
- Rscript -e "cc <- covr::package_coverage(line_exclusions = list('R/atc_online.R', 'R/mo_source.R')); covr::codecov(coverage = cc, token = '$codecov'); cat('Code coverage:', covr::percent_coverage(cc))"
2019-01-02 23:24:07 +01:00
coverage: '/Code coverage: \d+\.\d+/'
2018-12-24 13:21:47 +01:00
pages:
2018-12-30 07:44:11 +01:00
stage: deploy
2019-01-02 23:24:07 +01:00
when: always
only:
- master
2018-12-24 12:12:05 +01:00
script:
2019-05-16 21:20:00 +02:00
- mv docs public
2018-12-24 12:12:05 +01:00
artifacts:
paths:
- public