From 4b4d0627288d7f0820c27d13df3873f863f8eccf Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 29 Jul 2024 22:37:57 +0200 Subject: [PATCH] GA: modernize - take 2 --- .github/workflows/R-CMD-check.yaml | 89 +++++++++++++----------------- .github/workflows/covr.yaml | 51 +++++++---------- 2 files changed, 58 insertions(+), 82 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 67886d4..052f825 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -6,7 +6,7 @@ jobs: R-CMD-check: if: "! contains(github.event.head_commit.message, '[ci skip]')" - timeout-minutes: 45 + timeout-minutes: 30 runs-on: ${{ matrix.config.os }} @@ -18,33 +18,33 @@ jobs: config: - {os: windows-latest, r: 'devel' } - {os: windows-latest, r: 'release' } -# - {os: macOS-latest, r: 'devel' } + - {os: windows-latest, r: 'oldrel' } + - {os: macOS-14, r: 'devel' } - {os: macOS-latest, r: 'release' } - - {os: ubuntu-22.04, r: 'devel' } - - {os: ubuntu-22.04, r: 'release' } - - {os: ubuntu-22.04, r: 'oldrel' } - - {os: ubuntu-22.04, r: 'oldrel-1' } - - {os: ubuntu-22.04, r: 'oldrel-2' } - - {os: ubuntu-22.04, r: '3.6' } - - {os: ubuntu-22.04, r: 'release' , language: ko, label: ko } - - {os: ubuntu-22.04, r: 'release' , language: zh_CN, label: zh_CN } - - {os: ubuntu-22.04, r: 'release' , language: zh_TW, label: zh_TW } - + - {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.5' } + - {os: ubuntu-latest, r: 'release' , language: ko, label: ko } + - {os: ubuntu-latest, r: 'release' , language: zh_CN, label: zh_CN } + - {os: ubuntu-latest, r: 'release' , language: zh_TW, label: zh_TW } env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest + R_KEEP_PKG_SOURCE: yes R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + ## Test in other locale (optional) + LANGUAGE: ${{ matrix.config.language }} ## R CMD check _R_CHECK_CRAN_INCOMING_: false _R_CHECK_LENGTH_1_CONDITION_: true _R_CHECK_LENGTH_1_LOGIC2_: true _R_CHECK_MATRIX_DATA_: true _R_CHECK_SUGGESTS_ONLY_: true - _R_CHECK_THINGS_IN_TEMP_DIR_: true - RCMDCHECK_ERROR_ON: note - ## Test in other locale (optional) - LANGUAGE: ${{ matrix.config.language }} - + _R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_: true + steps: - uses: actions/checkout@v4 @@ -53,59 +53,44 @@ jobs: - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} - - - name: Query R package dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - shell: Rscript {0} - - - name: Cache R packages - if: runner.os != 'Windows' - uses: actions/cache@v3 + http-user-agent: ${{ matrix.config.http-user-agent }} + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 with: - path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - - name: Install R package system dependencies (Linux) - if: runner.os == 'Linux' - env: - RHUB_PLATFORM: linux-x86_64-ubuntu-gcc - run: | - Rscript -e "remotes::install_github('r-hub/sysreqs')" - sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") - sudo -s eval "$sysreqs" - sudo apt install -y libcurl4-openssl-dev + extra-packages: any::rcmdcheck + needs: check - - name: Install R package dependencies + - name: Install package itself (special case) run: | - remotes::install_deps(dependencies = TRUE) install.packages(".", repos = NULL, type = "source") ## self vignette engine shell: Rscript {0} - - name: Install 'rcmdcheck' - run: | - remotes::install_cran("rcmdcheck") - library(rcmdcheck) ## triggers an error, if installation failed - shell: Rscript {0} - - name: Session info run: | options(width = 100) capabilities() + parallelly::availableCores(which = "all") 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 - run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran", if (.Platform$OS.type == "windows" && getRversion() >= "4.2.0") "--no-multiarch"), check_dir = "check") + run: | + rcmdcheck::rcmdcheck( + args = c("--no-manual", "--as-cran"), + error_on = "note", + check_dir = "check" + ) shell: Rscript {0} - name: Upload check results if: failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-r${{ matrix.config.r }}-results path: check diff --git a/.github/workflows/covr.yaml b/.github/workflows/covr.yaml index 03da23e..81af6c7 100644 --- a/.github/workflows/covr.yaml +++ b/.github/workflows/covr.yaml @@ -4,11 +4,11 @@ name: covr jobs: covr: - if: "! contains(github.event.head_commit.message, '[ci skip]')" + if: "! contains(github.event.head_commit.message, '[ci skip]')" - timeout-minutes: 30 + timeout-minutes: 45 - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest name: covr @@ -17,48 +17,39 @@ jobs: env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest + R_KEEP_PKG_SOURCE: yes R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + ## Test in other locale (optional) + LANGUAGE: ${{ matrix.config.language }} ## R CMD check + _R_CHECK_CRAN_INCOMING_: false _R_CHECK_LENGTH_1_CONDITION_: true _R_CHECK_LENGTH_1_LOGIC2_: true _R_CHECK_MATRIX_DATA_: true - _R_CHECK_CRAN_INCOMING_: false + _R_CHECK_SUGGESTS_ONLY_: true + _R_CHECK_THINGS_IN_TEMP_DIR_: true + RCMDCHECK_ERROR_ON: note + ## Specific to futures + R_FUTURE_RNG_ONMISUSE: error steps: - uses: actions/checkout@v4 - - uses: r-lib/actions/setup-pandoc@v2 - - uses: r-lib/actions/setup-r@v2 with: - r-version: release - - - name: Query dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - shell: Rscript {0} + use-public-rspm: true - - name: Cache R packages - uses: actions/cache@v3 + - uses: r-lib/actions/setup-r-dependencies@v2 with: - path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - - name: Install system dependencies - env: - RHUB_PLATFORM: linux-x86_64-ubuntu-gcc - run: | - Rscript -e "remotes::install_github('r-hub/sysreqs')" - sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") - sudo -s eval "$sysreqs" + extra-packages: | + any::rcmdcheck + any::remotes + any::sessioninfo + any::covr + needs: check - name: Install dependencies run: | - install.packages(c("covr", "sessioninfo")) remotes::install_deps(dependencies = TRUE) install.packages(".", repos=NULL, type="source") shell: Rscript {0} @@ -76,7 +67,7 @@ jobs: ## https://app.codecov.io/gh///settings ## 2. Set 'CODECOV_TOKEN' in GitHub Secrets: ## https://github.com///settings/environments/ - coverage <- covr::package_coverage() + coverage <- covr::package_coverage(quiet = FALSE) print(coverage) covr::codecov(coverage = coverage, token="${{secrets.CODECOV_TOKEN}}") shell: Rscript {0}