diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 33d6ae168..f6114f661 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,18 +1,110 @@ # from https://stackoverflow.com/questions/51866926 # and https://github.com/jangorecki/r.gitlab.ci -image: rocker/r-base -gitlab: - script: +# 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 + - deploy + +R 3: + image: rocker/r-ver:3 # rocker/r-base + stage: build + allow_failure: false + script: - apt-get update # install dependencies for package - - apt-get install --yes --no-install-recommends r-cran-xml2 r-cran-testthat r-cran-devtools - - R -e 'devtools::install_deps(dependencies = c("Depends", "Imports", "Suggests"))' + - apt-get install --yes --no-install-recommends libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev + - R -e 'install.packages(c("devtools", "rlang"))' + - R -e 'devtools::install_deps(dependencies = c("Depends", "Imports", "Suggests"), repos = "https://cran.rstudio.com")' + - R -e 'print(as.data.frame(installed.packages(), row.names = FALSE)[, c("Package", "Version")])' # remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file - rm -rf vignettes - R -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")' - 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 - # update code coverage + # code coverage - apt-get install --yes git - - R -e "covr::codecov(token = '50ffa0aa-fee0-4f8b-a11d-8c7edc6d32ca')" + - R -e 'covr::codecov(token = "50ffa0aa-fee0-4f8b-a11d-8c7edc6d32ca")' + artifacts: + paths: + - '*.Rcheck/*' + name: 'Latest Rcheck log' + expire_in: '1 month' + +R 3.4: + image: rocker/r-ver:3.4 # rocker/r-base + stage: build + allow_failure: true + script: + - apt-get update + # install dependencies for package + - apt-get install --yes --no-install-recommends libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev + - R -e 'install.packages("devtools")' + - R -e 'devtools::install_deps(dependencies = c("Depends", "Imports", "Suggests"))' + - R -e 'print(as.data.frame(installed.packages(), row.names = FALSE)[, c("Package", "Version")])' + # remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file + - rm -rf vignettes + - R -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")' + - 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 + +R 3.5: + image: rocker/r-ver:3.5 # rocker/r-base + stage: build + allow_failure: true + script: + - apt-get update + # install dependencies for package + - apt-get install --yes --no-install-recommends libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev + - R -e 'install.packages("devtools")' + - R -e 'devtools::install_deps(dependencies = c("Depends", "Imports", "Suggests"))' + - R -e 'print(as.data.frame(installed.packages(), row.names = FALSE)[, c("Package", "Version")])' + # remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file + - rm -rf vignettes + - R -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")' + - 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 + +#R latest: + # image: rocker/r-ver:latest # rocker/r-base + # stage: build + # allow_failure: true + # script: + # - apt-get update + # install dependencies for package +# - apt-get install --yes --no-install-recommends libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev + # - R -e 'install.packages("devtools")' + # - R -e 'devtools::install_deps(dependencies = c("Depends", "Imports", "Suggests"))' + # - R -e 'print(as.data.frame(installed.packages(), row.names = FALSE)[, c("Package", "Version")])' + # remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file + # - rm -rf vignettes + # - R -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")' +# - 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 + +# R devel: + # image: rocker/r-ver:devel # rocker/r-base + # stage: build + # allow_failure: true + # script: + # - apt-get update + # install dependencies for package + #- apt-get install --yes --no-install-recommends libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev + #- R -e 'install.packages("devtools")' + # - R -e 'devtools::install_deps(dependencies = c("Depends", "Imports", "Suggests"))' + #- R -e 'print(as.data.frame(installed.packages(), row.names = FALSE)[, c("Package", "Version")])' + # remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file + #- rm -rf vignettes + # - R -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")' + +coverage_job: + # image: rocker/r-ver:3 + stage: deploy + script: + - echo "future packaging part"