# ==================================================================== #
# TITLE                                                                #
# Antimicrobial Resistance (AMR) Analysis                              #
#                                                                      #
# SOURCE                                                               #
# https://gitlab.com/msberends/AMR                                     #
#                                                                      #
# LICENCE                                                              #
# (c) 2019 Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl)  #
#                                                                      #
# 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.                                           #
# Visit our website for more info: https://msberends.gitab.io/AMR.     #
# ==================================================================== #

# from https://stackoverflow.com/questions/51866926
# and https://github.com/jangorecki/r.gitlab.ci
# and https://docs.gitlab.com/ce/ci/yaml/README.html
# how the Docker+R images work: https://hub.docker.com/r/rocker/r-ver/

stages:
  - build
  - test
  - deploy

# stretch only contains R 3.3
image: debian:buster-slim

before_script:
  - apt-get -qq update
  # install dependencies for packages
  - apt-get -y -qq install locales libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev pandoc r-base
  # 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
  - locale-gen
  # 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
  #- Rscript -e '.libPaths()'
  # 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)'

cache:
  key: "$CI_COMMIT_REF_SLUG"
  paths:
    - installed_deps/

R 3:
  stage: build
  allow_failure: true
  script:
    # 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
    - R CMD build . --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:
    paths:
      - '*.Rcheck/*'
    name: 'Rcheck log'
    expire_in: '1 month'

coverage:
  stage: test
  allow_failure: true
  when: on_success
  only:
    - master
  script:
  - apt-get install --yes git
  - Rscript -e 'cc <- covr::package_coverage(); covr::codecov(coverage = cc, token = "50ffa0aa-fee0-4f8b-a11d-8c7edc6d32ca"); cat("Code coverage:", covr::percent_coverage(cc))'
  coverage: '/Code coverage: \d+\.\d+/'

pages:
  stage: deploy
  when: always
  only:
    - master
  script:
    #- Rscript -e "install.packages('pkgdown', repos = 'https://cran.rstudio.com')"
    - Rscript -e "devtools::install(build = TRUE, upgrade = FALSE)"
    - R -e "pkgdown::build_site(examples = FALSE, override = list(destination = 'public'))"
  artifacts:
    paths:
      - public
