#!/bin/bash # bootstrap # NB: ranger requires CXX14, R 4.0.5 still uses CXX11 export R_VERSION=4.0.5 export R_PROGRESSR_ENABLE=TRUE /opt/R/$R_VERSION/bin/R mkdir $HOME/.R && echo -e 'CXX_STD = CXX14\n\nVER=\nCCACHE=ccache\nCC=$(CCACHE) gcc$(VER) -std=gnu99\nCXX=$(CCACHE) g++$(VER)\nC11=$(CCACHE) g++$(VER)\nC14=$(CCACHE) g++$(VER)\nFC=$(CCACHE) gfortran$(VER)\nF77=$(CCACHE) gfortran$(VER)\nMAKEFLAGS=-j2' >$HOME/.R/Makevars mkdir $HOME/.ccache && echo -e 'max_size = 5.0G\nsloppiness = include_file_ctime\nhash_dir=false' >$HOME/.ccache/ccache.conf /opt/R/$R_VERSION/bin/R -q -e 'install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))' /opt/R/$R_VERSION/bin/R -q -e 'Sys.setenv(PKG_SYSREQS = TRUE); Sys.setenv(PKG_SYSREQS_VERBOSE = TRUE); pak::pak("devtools")' /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); Sys.setenv(PKG_SYSREQS = TRUE); Sys.setenv(PKG_SYSREQS_VERBOSE = TRUE); pak::local_install_dev_deps()' /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); pak::pak(c("future", "future.apply"))' # single tag /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); build_binary_package("mlr3filters", tag = "0.5.0", install_system_dependencies=FALSE)' # all tags (sequential) /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); build_binary_package("mlr3filters", install_system_dependencies=FALSE)' # all tags (parallel) /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); future::plan("multicore", workers = 2); build_binary_package("mlr3filters", install_system_dependencies=FALSE, build_for_minor=FALSE);' ### execute # mlr3filters ALL ssh -T homelab-de <<'EOF' export R_VERSION=4.0.5 cd /home/pjs/rBinaries /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); future::plan("multicore", workers = 2); build_binary_package("mlr3filters", install_system_dependencies=FALSE, build_for_minor=FALSE);' EOF # mlr3filters SINGLE export R_VERSION=4.0.5 export R_PROGRESSR_ENABLE=TRUE rsync -a ~/git/homelab/rBinaries homelab-de:/home/pjs/ ssh -T homelab-de <<'EOF' sudo su export R_VERSION=4.0.5 cd /home/pjs/rBinaries /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); future::plan("sequential", workers = 2); build_binary_package("mlr3filters", "0.8.0", install_system_dependencies=FALSE, build_for_minor=FALSE);' EOF # stringi ALL export R_VERSION=4.0.5 export R_PROGRESSR_ENABLE=TRUE rsync -a ~/git/homelab/rBinaries homelab-de:/home/pjs/ ssh -T homelab-de <<'EOF' sudo su export R_VERSION=4.0.5 cd /home/pjs/rBinaries /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); future::plan("multicore", workers = 2); build_binary_package("stringi", install_system_dependencies=FALSE, build_for_minor=FALSE);' EOF # stringi SINGLE export R_VERSION=4.0.5 export R_PROGRESSR_ENABLE=TRUE rsync -a ~/git/homelab/rBinaries homelab-de:/home/pjs/ ssh -T homelab-de <<'EOF' sudo su export R_VERSION=4.0.5 cd /home/pjs/rBinaries /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); future::plan("sequential", workers = 2); build_binary_package("stringi", tag = "1.8.4", install_system_dependencies=FALSE, build_for_minor=FALSE);' EOF rsync -a ~/git/homelab/rBinaries homelab-de:/home/pjs/ ssh -T homelab-de <<'EOF' sudo su export R_VERSION=4.0.5 /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); query_build_metadata()' EOF # build metadata summary rsync -a ~/git/homelab/rBinaries homelab-de:/home/pjs/ ssh -T homelab-de <<'EOF' sudo su export R_VERSION=4.0.5 /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); build_metadata_summary(package = "stringi", platform = "redhat-9")' EOF # get metadata summary rsync -a ~/git/homelab/rBinaries homelab-de:/home/pjs/ ssh -T homelab-de <<'EOF' sudo su export R_VERSION=4.0.5 /opt/R/$R_VERSION/bin/R -q -e 'setwd("/home/pjs/rBinaries"); devtools::load_all(); query_metadata_summary()' EOF