diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index cf2e656..54eef61 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -35,12 +35,33 @@ jobs: r-version: release use-public-rspm: true + # ponytail: source-build stringfish BEFORE dependency setup — packages built + # from source during install (e.g. SimDesign) load it at build time and die + # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. + # repos= is explicit because R_PROFILE_USER=/dev/null blanks setup-r's repos. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' + - name: Set up R package dependencies uses: r-lib/actions/setup-r-dependencies@d3c5be51b12e724e68f33216ca3c148b66d5f0b6 with: extra-packages: any::rcmdcheck needs: check + # ponytail: CRAN/RSPM binary skew — prebuilt binaries (stringfish, qs2, ...) lag + # RcppParallel's oneTBB update (undefined tbb::internal / tbb::task symbols). + # Rebuild everything LinkingTo RcppParallel from source so it links the installed + # copy. Drop once upstream binaries re-sync. + - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) + run: >- + Rscript -e 'r <- "https://cloud.r-project.org"; install.packages("RcppParallel", type = "source", repos = r); + bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source", repos = r)' + - name: Run R CMD check uses: r-lib/actions/check-r-package@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 with: