igvShiny Package failing to build in Ubuntu only.

I'm not sure where to start here. This is only happening on the Ubuntu test.

# Workflow derived from https://github.com/r-lib/actions/tree/master/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
  push:
    branches: [main, master, staging, develop]
  pull_request:
    branches: [main, master, staging, develop]

name: R-CMD-check

jobs:
  R-CMD-check:
    runs-on: ${{ matrix.config.os }}

    name: ${{ matrix.config.os }} (${{ matrix.config.r }})

    strategy:
      fail-fast: false
      matrix:
        config:
          - {os: macOS-latest,   r: '4.1.0'}
          - {os: windows-latest, r: '4.1.0'}
          - {os: ubuntu-20.04, r: '4.1.0', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}

    env:
      R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
      RSPM: ${{ matrix.config.rspm }}
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

    steps:
      - uses: actions/checkout@v2

      - uses: r-lib/actions/setup-pandoc@v1

      - uses: r-lib/actions/setup-r@v1
        with:
          r-version: ${{ matrix.config.r }}
          http-user-agent: ${{ matrix.config.http-user-agent }}
          use-public-rspm: true

      - uses: r-lib/actions/setup-r-dependencies@v1
        with:
          extra-packages: rcmdcheck

      - uses: r-lib/actions/check-r-package@v1

      - name: Show testthat output
        if: always()
        run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true
        shell: bash

      - name: Upload check results
        if: failure()
        uses: actions/upload-artifact@main
        with:
          name: ${{ runner.os }}-r${{ matrix.config.r }}-results
          path: check

Error:

Error: Error: <callr_remote_error: Failed to build source package 'igvShiny'>
   in process 9165 
  -->
  Failed to build source package 'igvShiny', stdout + stderr:
  
  OE> * installing *source* package ‘igvShiny’ ...
  OE> staged installation is only possible with locking
  OE> ** using non-staged installation
  OE> ** R
  OE> ** inst
  OE> ** byte-compile and prepare package for lazy loading
  OE> Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  OE>   unable to load shared object '/home/runner/work/iatlas-app/iatlas-app/renv/library/R-4.1/x86_64-pc-linux-gnu/V8/libs/V8.so':
  OE>   libnode.so.64: cannot open shared object file: No such file or directory
  OE> Calls: <Anonymous> ... namespaceImport -> loadNamespace -> library.dynam -> dyn.load
  OE> Execution halted
  OE> ERROR: lazy loading failed for package ‘igvShiny’
  OE> * removing ‘/tmp/RtmpJBCATb/pkg-lib23cd693f40b4/igvShiny’
  
   Stack trace:
  
   12. (function (...)  ...
   13. base:::withCallingHandlers(cli_message = function(msg) { ...
   14. get("pkg_install_do_plan", asNamespace("pak"))(...)
   15. pkgdepends::install_package_plan(plan = plan, lib = lib, num_workers = num_ ...
   16. base:::withCallingHandlers({ ...
   17. pkgdepends:::handle_events(state, events)
   18. pkgdepends:::handle_event(state, i)
   19. pkgdepends:::stop_task(state, worker)
   20. pkgdepends:::stop_task_build(state, worker)
   21. base:::throw(new_pkg_build_error("Failed to build source package {pkg}",  ...
   22. base:::signalCondition(cond)
   23. (function (e)  ...
   24. base:::stop(e)
   25. (function (e)  ...
  
   x Failed to build source package 'igvShiny' 
  
  Execution halted
  Error: Process completed with exit code 1.

An Ubuntu package is needed for V8, which is needed by your package. Look at the log to see why it was not installed.

Btw. it seems that you are using renv. If you want to install the same package versions as in your renv lock file, then I think you'll need to use the setup-renv action, instead of setup-r-dependencies.

1 Like