.install-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 ./ci/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 libharfbuzz-dev libfribidi-dev /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 |