If you're using @Posit's r-lib/actions/setup-r and {pak} (or even if not using {pak} you might switch for this), set `use-public-rspm: true` for your Ubuntu runners on GitHub actions. Took a ~20 minute job down to ~8 by installing binaries, e.g., https://github.com/AAGI-AUS/AAGIQuarto/blob/af32781a3b18eac9216b225b90f9afef524310c3/.github/workflows/publish.yml#L30. #RStats #GitHub #CI
AAGIQuarto/.github/workflows/publish.yml at af32781a3b18eac9216b225b90f9afef524310c3 · AAGI-AUS/AAGIQuarto

A Quarto Extension for AAGI Themed Products, e.g., PDF, Word, revealjs, and PPT for AAGI staff - AAGI-AUS/AAGIQuarto

GitHub
@adamhsparks @Posit I haven’t used {pak} yet, but if you’re saying it’s good, I might just do that.
@danwwilson @Posit it's handy for installing system level libs if building from source, and in this case, grabbing Linux binaries for a quicker CI session.

@adamhsparks @danwwilson @Posit

I am still unclear if i want to go the guix path for that (and do not if It will be correct) but always good to have other options!

@defuneste @danwwilson @Posit I’ve never used guix. TBF, I don’t even really know what it is. How/why would I use it here with GHA?

@adamhsparks @danwwilson @Posit

guix is a functional package manager, you can use it in gha since most of your action probably run in linux (it will prob be slower than getting binary but I could be wrong). I hope it gave us some unified way of managing environment.

@defuneste
@adamhsparks @danwwilson @Posit

Regarding #Guix, for Github Actions, take a look at this:

https://github.com/marketplace/actions/install-gnu-guix

And as for using pak or Guix, I personally use both. I use pak on my laptop for quick scripting, and when it is functional code, then I create a Guix environment for it.

At work, I exclusively run all my projects in Guix time-machine. I have explained my workflow here:

https://mehrad.ai/posts/20251106-reproducible-r-enviroment-using-guix/

@defuneste
@adamhsparks @danwwilson @Posit

As a side-note, all CRAN packages are available from its respective channel. I refuse to use #Bioconductor for moral reasons, but it is also available as a dedicated channel. I strongly advise to use the time-machine for the long projects, simply because #Guix is a rolling distro and eventually everything will get updated. Using time-machine guarantees byte-to-byte reproducibility, including bugs and packaging errors.