build-cran-binaries/exec.sh

87 lines
4 KiB
Shell
Executable file

#!/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