Test parallelly-develop on GitHub Actions running macOS #256
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| on: [push, pull_request, workflow_dispatch] | |
| name: R-CMD-check | |
| jobs: | |
| R-CMD-check: | |
| if: "! contains(github.event.head_commit.message, '[ci skip]')" | |
| timeout-minutes: 30 | |
| runs-on: ${{ matrix.config.os }} | |
| name: ${{ matrix.config.os }} (${{ matrix.config.r }}) ${{ matrix.config.label }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - {os: windows-latest, r: 'devel' } | |
| - {os: windows-latest, r: 'release' } | |
| - {os: windows-latest, r: 'oldrel' } | |
| # - {os: macOS-latest, r: 'devel' } | |
| - {os: macOS-latest, r: 'release', parallelly_version: develop, label: 'w/ parallelly-develop' } | |
| - {os: macOS-latest, r: 'release' } | |
| - {os: macOS-latest, r: 'oldrel' } | |
| # - {os: ubuntu-latest, r: 'devel' } | |
| - {os: ubuntu-latest, r: 'release' } | |
| - {os: ubuntu-latest, r: 'oldrel' } | |
| - {os: ubuntu-latest, r: 'oldrel-1' } | |
| - {os: ubuntu-latest, r: 'oldrel-2' } | |
| # - {os: ubuntu-latest, r: '3.6' } | |
| - {os: ubuntu-latest, r: 'release' , plan: multicore, label: 'w/ multicore' } | |
| - {os: ubuntu-latest, r: 'release' , plan: multisession, label: 'w/ multisession' } | |
| - {os: windows-latest, r: 'release', future_version: develop, label: 'w/ future-develop' } | |
| - {os: windows-latest, r: 'release', globals_version: develop, future_version: develop, label: 'w/ future-develop' } | |
| - {os: ubuntu-latest, r: 'release', future_version: develop, label: 'w/ future-develop' } | |
| - {os: ubuntu-latest, r: 'release', globals_version: develop, future_version: develop, label: 'w/ future-develop' } | |
| env: | |
| GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
| R_KEEP_PKG_SOURCE: yes | |
| R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
| ## R CMD check | |
| _R_CHECK_CRAN_INCOMING_: false | |
| _R_CHECK_MATRIX_DATA_: true | |
| _R_CHECK_SUGGESTS_ONLY_: true | |
| _R_CHECK_THINGS_IN_TEMP_DIR_: true | |
| ## Specific to 'rcmdcheck' | |
| RCMDCHECK_ERROR_ON: note | |
| ## Specific to futures | |
| R_FUTURE_RNG_ONMISUSE: error | |
| R_FUTURE_PLAN: ${{ matrix.config.plan }} | |
| ## FIXME: Eventually update to 'R_FUTURE_GLOBALS_ONREFERENCE=error' | |
| R_FUTURE_GLOBALS_ONREFERENCE: "warning" | |
| R_PARALLELLY_VERSION: ${{ matrix.config.parallelly_version }} | |
| R_GLOBALS_VERSION: ${{ matrix.config.globals_version }} | |
| R_FUTURE_VERSION: ${{ matrix.config.future_version }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: r-lib/actions/setup-pandoc@v2 | |
| - uses: r-lib/actions/setup-r@v2 | |
| 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@v2 | |
| with: | |
| extra-packages: any::rcmdcheck any::remotes | |
| needs: check | |
| - name: Install package itself (special case) | |
| run: | | |
| install.packages(".", repos = NULL, type = "source") ## needed by parallel workers | |
| lapply(c("future.batchtools", "future.callr"), FUN = function(pkg) if (grepl(pkg, "${{ matrix.config.future_plan }}")) install.packages(pkg)) | |
| shell: Rscript {0} | |
| - name: Test with specific future version? | |
| run: | | |
| globals_version <- Sys.getenv("R_GLOBALS_VERSION") | |
| if (nzchar(globals_version)) { | |
| remotes::install_github("futureverse/globals", ref=globals_version, upgrade = FALSE) | |
| } | |
| parallelly_version <- Sys.getenv("R_PARALLELLY_VERSION") | |
| if (nzchar(parallelly_version)) { | |
| remotes::install_github("futureverse/parallelly", ref=parallelly_version, upgrade = FALSE) | |
| } | |
| future_version <- Sys.getenv("R_FUTURE_VERSION") | |
| if (nzchar(future_version)) { | |
| remotes::install_github("futureverse/future", ref=future_version, upgrade = FALSE) | |
| } | |
| shell: Rscript {0} | |
| - name: Session info | |
| run: | | |
| options(width = 100) | |
| parallelly::availableCores(which = "all") | |
| sapply(c(physical_cores = FALSE, logical_cores = TRUE), parallel::detectCores) | |
| if (require(RhpcBLASctl, quietly=TRUE)) c(get_num_procs = get_num_procs(), get_num_cores = get_num_cores(), blas_get_num_procs = blas_get_num_procs(), omp_get_num_procs = omp_get_num_procs(), omp_get_max_threads = omp_get_max_threads()) | |
| capabilities() | |
| pkgs <- installed.packages()[, "Package"] | |
| sessioninfo::session_info(pkgs, include_base = TRUE) | |
| ## Verify LANGUAGE settings by generating a translatable error | |
| cat(sprintf("LANGUAGE=%s\n", sQuote(Sys.getenv("LANGUAGE")))) | |
| cat(sprintf("locales: %s\n", sQuote(Sys.getlocale()))) | |
| tryCatch(log("a"), error = conditionMessage) | |
| shell: Rscript {0} | |
| - name: Check (!Windows) | |
| if: runner.os != 'Windows' | |
| run: | | |
| if (nzchar(Sys.getenv("R_FUTURE_PLAN")) || getRversion() < "3.5.0") Sys.setenv(RCMDCHECK_ERROR_ON = "error") | |
| rcmdcheck::rcmdcheck( | |
| build_args = if (getRversion() < "3.5.0") "--no-build-vignettes", | |
| args = c("--no-manual", "--as-cran", if (getRversion() < "3.5.0") c("--no-vignettes", "--no-build-vignettes", "--ignore-vignettes")), | |
| check_dir = "check" | |
| ) | |
| shell: Rscript {0} | |
| - name: Check (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| rcmdcheck::rcmdcheck( | |
| args = c("--no-manual", "--as-cran", if (.Platform$OS.type == "windows" && getRversion() >= "4.2.0") "--no-multiarch"), | |
| check_dir = "check" | |
| ) | |
| shell: Rscript {0} | |
| - name: Upload check results | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ runner.os }}-r${{ matrix.config.r }}-results | |
| path: check |