Hi to all of you,
I have been working towards continuous integration testing of an algorithm wrapped in an R package against a Julia implementation, which I have also packaged in an R package via JuliaConnectoR.
First, I thought it would be maybe helpful for others to post my cmd-check workflow yaml here - maybe someone else might be interested in testing an R package against Julia code.
This is a standard cmd-check workflow as created by usethis::use_github_actions()
, but installs Julia, the required Julia package (WildBootTests.jl) and links R and Julia (the 'JULIA_BINDIR' part).
# 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]
pull_request:
branches: [main, master]
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: 'release'}
- {os: windows-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'oldrel-1'}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
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
# install julia
- uses: julia-actions/setup-julia@v1
# add julia to renviron
- name: Create and populate .Renviron file
run: echo JULIA_BINDIR= "${{ env.juliaLocation }}" >> ~/.Renviron
# install WildBootTests.jl
- name: install WildBootTests.jl
run: julia -e 'using Pkg; Pkg.add("WildBootTests")'
- 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
The code above successfully deploys the cmd check on github actions for all OS except for windows. The part that fails is run: julia -e 'using Pkg; Pkg.add("WildBootTests")'
, which installs the WildBootTests.jl
package via the shell.
Does anyone have an idea why the installation of WildBootTests.jl
fails on windows, but not on Mac and Ubuntu?
You can find more information on the workflow here: don't run library(wildboottestjlr) · s3alfisc/fwildclusterboot@5b2e2c9 · GitHub
Thanks for your help!