blob: 18c0cb22313f92a88b25efb0580699b35f910974 [file] [log] [blame]
.intstall-rkorapclient:
variables:
# Set `CCACHE_BASEDIR` and `CCACHE_DIR` to point `ccache` towards the cached
# path on the gitlab-runner. This enables to cache the output of `ccache`
# between various runs.
CCACHE_BASEDIR: ${CI_PROJECT_DIR}
CCACHE_DIR: ${CI_PROJECT_DIR}/ccache
# Set `ccache` to `content` to prevent rebuilding of the CI/CD containers to
# trigger a recreate of the cache. By using `content` the compiler's `mtime`
# is not considered as part of the hash.
CCACHE_COMPILERCHECK: "content"
# Enable caching for `apt-get`.
APT_CACHE_DIR: ${CI_PROJECT_DIR}/apt-cache
# Export `noninteractive` frontend to prevent requesting user input
DEBIAN_FRONTEND: noninteractive
R_LIBS_USER: ${CI_PROJECT_DIR}/rlib
cache:
key: rkorapclient
paths:
- apt-cache/
- ccache/
- rlib/
before_script:
- source `find .. -name section_helper.sh`
- start_section install_linux_packages "Installing missing Linux packages"
- mkdir -pv $APT_CACHE_DIR ccache $R_LIBS_USER /usr/local/sbin ~/.ccache ~/.R
- cp ci/Makevars ~/.R/Makevars
- cp ci/ccache.conf ${CI_PROJECT_DIR}/ccache/ccache.conf
- cp ci/ccache.conf ~/.ccache/ccache.conf
- echo "R_LIBS='$R_LIBS_USER'" > .Renviron
- echo "MAKEFLAGS=-j$(nproc)" >> ~/.R/Makevars
- echo "MAKE=make -j$(nproc)" >> ~/.R/Makevars
- apt-get update
- apt-get install -y -o dir::cache::archives="$APT_CACHE_DIR" --no-install-recommends software-properties-common dirmngr ccache wget
- wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
- add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
# - add-apt-repository ppa:c2d4u.team/c2d4u4.0+
- grep "sudo apt install" Readme.md | sed -e 's/.*sudo apt install/apt-get install --no-install-recommends -o dir::cache::archives="$APT_CACHE_DIR" -y /g' | sh
- ln -s $(which ccache) /usr/local/sbin/gcc
- ln -s $(which ccache) /usr/local/sbin/g++
- end_section install_linux_packages
script:
- start_section installing "Installing RKorAPClient from CRAN"
- export PATH=/usr/local/sbin:$PATH
- R -q -e "install.packages(c('remotes', 'RKorAPClient'), dependencies = TRUE)"
- R -q -e "update.packages(ask = FALSE)"
- end_section installing
- start_section linstalling "Installing RKorAPClient from source"
- R -q -e 'remotes::install_local(force = TRUE, dependencies = TRUE)'
- ccache -s
- end_section linstalling
build-rkorapclient-on-stable:
extends: .intstall-rkorapclient
image: ubuntu:latest
cache:
key: rkorapclient-ubuntu-stable
paths:
- apt-cache/
- ccache/
- rlib/
build-rkorapclient-on-rolling:
extends: .intstall-rkorapclient
image: ubuntu:rolling