I'm moving from Travis to GitHub Actions for an R package I'm a developer on, and I'm running into an issue with check-standard.yaml
. The check works fine on Ubuntu 20.04 release and devel, but fails on macOS and Windows. In both cases, it fails because a vignette requires the rjags package which fails to install on macOS and Windows due to the absence of the JAGS system library.
In both cases, rjags seems to install without issue, and then causes an error when trying to render the vignette because the runner is unable to load the missing JAGS system library. The following code in check-standard.yaml
makes it seem like system dependencies are only installed on linux runners:
- name: Install system dependencies
if: runner.os == 'Linux'
run: |
while read -r cmd
do
eval sudo $cmd
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
The documentation for remotes::system_requirements()
says that it does support Windows but does not support macOS (see https://github.com/rstudio/r-system-requirements#operating-systems). However, remotes::system_requirements()
doesn't support Windows yet, because it says the API doesn't support it yet (see https://github.com/r-lib/remotes/blob/master/R/system_requirements.R).
At this point, is the best practice to just manually install JAGS for macOS using brew
? Also, JAGS doesn't seem to be available via Chocolatey, so what would be the best way to install a system dependency I can't just choco install
?
The macOS error is below:
Error: --- re-building ‘getting_started.Rmd’ using rmarkdown
Registered S3 method overwritten by 'GGally':
method from
+.gg ggplot2
Loading required package: rjags
Loading required package: coda
Error: Error: package or namespace load failed for 'rjags':
.onLoad failed in loadNamespace() for 'rjags', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Users/runner/work/_temp/Library/rjags/libs/rjags.so':
dlopen(/Users/runner/work/_temp/Library/rjags/libs/rjags.so, 10): Library not loaded: /usr/local/lib/libjags.4.dylib
Referenced from: /Users/runner/work/_temp/Library/rjags/libs/rjags.so
Reason: image not found
The Windows error is below:
Loading required package: rjags
Loading required package: coda
Error: Error: package or namespace load failed for 'rjags':
.onLoad failed in loadNamespace() for 'rjags', details:
call: fun(libname, pkgname)
error: Failed to locate any version of JAGS version 4
The rjags package is just an interface to the JAGS library
Make sure you have installed JAGS-4.x.y.exe (for any x >=0, y>=0) from
http://www.sourceforge.net/projects/mcmc-jags/files