Repository navigation
Conversation
pak installs Chromium on Ubuntu from ppa:xtradeb/apps, so every R job on Linux failed while Launchpad was unavailable, including the R CMD check jobs that never start a browser. Chromium is the only requirement that comes from outside Ubuntu's archive, and the runner image already ships Chrome. A shared composite action, r-sysreqs, asks pak for the same system requirements setup-r-dependencies would install, drops the chrome requirement, and installs the rest. setup-r-dependencies then runs with PKG_SYSREQS=false in the R CMD check, pkgdown, and citation browser workflows. The browser tests use the runner's Chrome, which chromote finds on the PATH.
There was a problem hiding this comment.
It seems like the underlying issue may have been resolved upstream yesterday—this commit now guards every Ubuntu pre-install command with [ $(which google-chrome) ] || …, for 22.04/24.04/26.04. Our Actions runs yesterday hadn't picked up this commit yet, but they should now—could we wait on this and see if the issue has now resolved itself? I'd prefer to continue to get upstream improvements from pak and its toolchain for free.
Ha, in my rage to workaround this, I didn't think to look at where xtradeb was coming from. Thanks @schloerke! I think that fix will work and agree with you better not to have the workaround here. |
This PR adds a shared composite action that installs the R system requirements on Linux without Chromium. The R jobs no longer depend on the xtradeb Launchpad PPA that pak adds for Chromium. This PPA has caused at least two outages that I've noticed while working, which is kind of a drag.
Details (agent-written)
Chromium is the only one of the 26 system requirements that comes from outside Ubuntu's archive, and pak adds
ppa:xtradeb/appsfor it. The five R CMD check jobs on Ubuntu installed it too, although they setCOMMONS_SKIP_BROWSER_TESTSand never start a browser.r-sysreqsasks pak for the requirements thatsetup-r-dependencieswould install for the sameextra-packagesandneeds, drops thechromerequirement, and installs the rest. Each R workflow runs it first, then runssetup-r-dependencieswithPKG_SYSREQS=false. The citation browser job uses the Chrome that ships in the runner image, and its existingLocate Chromestep fails ifchromotecannot find it. macOS and Windows do not change, because pak installs no system packages there.Rejected alternatives: retrying
setup-r-dependencies(the last outage lasted about 40 minutes), and turning system requirements off entirely (the runner image does not promisecmake, protobuf,libnode, orunixodbc-dev).Testing: the action's script ran in an Ubuntu 24.04 container against Package Manager's
latest, andactionlintpasses on the three workflows. In this PR's checks, every Ubuntu R CMD check job and pkgdown pass without adding the PPA, and the citation browser tests (30) pass on the runner's Chrome.setup-r-dependenciesstill prints "Missing 26 system packages" in its log. WithPKG_SYSREQS=false, pak lists every requirement without checking what is installed, so the message is expected.