GHA-Built: Building binaries for R/Bioconductor packages via Github Actions

GHA-Built: Building binaries for R/Bioconductor packages via Github Actions


Author(s): Alexandru Mahmoud

Affiliation(s): Bioconductor Core Team / BWH / Channing at HMS



Since their introduction, the Bioconductor Docker containers have gained significant popularity as a convenient solution for running an R or RStudio session in an environment pre-configured to work out-of-the-box with little to no user configuration. In order to improve the user experience in this pre-configured environment, the Bioconductor team started building package binaries for the Docker containers, greatly reducing the installation time for Bioconductor and their dependent R packages. The binary building process for containers serves a dual purpose: it improves usability by eliminating the need for compilation and thus reducing installation time to a few seconds, while also ensuring that all system dependencies remain pre-installed in the containers, as new missing dependencies get flagged during the binary building process. Binary building was previously accomplished using the BiocKubeInstall and RedisParam packages, a stack specific to the Google Cloud and a specific Bioconductor Docker container. The new approach developed by the Core team in the past year, generalizes the binary building process, by eliminating the cost and cloud provider lock-in. The GHA-Build stack represents a reusable and distributable solution for building Bioc/R package binaries for any Docker container, which can be run in GitHub Actions' free compute environment, or scaled for faster production with self-hosted runners. In this talk, we will discuss a brief overview of the history and advantages of building binaries in general, after which we will present the new GHA-Build approach.