report CRAN incoming results #61
This file contains 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
# Workflow derived from https://github.com/r-lib/actions/tree/v2/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-CRAN-incoming.yaml | |
permissions: read-all | |
jobs: | |
R-CMD-check: | |
runs-on: ${{ matrix.config.os }} | |
timeout-minutes: 25 | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, r: 'devel'} | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
R_KEEP_PKG_SOURCE: yes | |
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::crayon | |
needs: check | |
- name: Install aspell on Windows | |
if: ${{ runner.os=='Windows' }} | |
run: | | |
pacman -S --noconfirm aspell aspell-en | |
- name: Install aspell on Ubuntu | |
if: ${{ runner.os=='Linux' }} | |
run: | | |
sudo apt-get update && sudo apt-get install -y aspell aspell-en | |
- name: Install aspell on macOS | |
if: ${{ runner.os=='macOS' }} | |
run: | | |
brew install aspell | |
- name: R CMD check CRAN incoming feasibilty | |
id: rcmdcheck | |
run: | | |
cat("::group::Run R CMD check with CRAN incoming env vars\n") | |
options(crayon.enabled = TRUE) | |
cat("LOGNAME=", Sys.info()[["user"]], "\n", sep = "", file = Sys.getenv("GITHUB_ENV"), append = TRUE) | |
Sys.setenv("_R_CHECK_FORCE_SUGGESTS_" = "false") | |
Sys.setenv("_R_CHECK_CRAN_INCOMING_" = "true") | |
Sys.setenv("_R_CHECK_CRAN_INCOMING_REMOTE_" = "true") | |
Sys.setenv("_R_CHECK_CRAN_INCOMING_USE_ASPELL_" = "true") | |
cat("check-dir-path=", file.path(getwd(), "check"), "\n", file = Sys.getenv("GITHUB_OUTPUT"), sep = "", append = TRUE) | |
check_results <- rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), build_args = c("--no-manual", "--compact-vignettes=gs+qpdf"), error_on = "warning", check_dir = "check") | |
writeLines(paste0("```\n", check_results$stdout, "\n```"), Sys.getenv("GITHUB_STEP_SUMMARY")) | |
notes <- unlist(strsplit(check_results$notes, "\\n")) | |
notes <- grep("^checking CRAN incoming feasibility|^Maintainer: |^New submission$|^$", notes, value = TRUE, invert = TRUE) | |
if (length(notes) > 0L) cat("::error::Notes found in CRAN incoming feasibility check\n"); for (n in notes) cat(paste(n, collapse = "\n")); quit(status=1) | |
shell: Rscript {0} | |
- name: Upload 00check.log | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ format('{0}-{1}-r{2}-{3}-00check.log', runner.os, runner.arch, matrix.config.r, matrix.config.id || strategy.job-index ) }} | |
path: ${{ steps.rcmdcheck.outputs.check-dir-path }}/*.Rcheck/00check.log | |
if-no-files-found: ignore | |
- name: Find Comment | |
uses: peter-evans/find-comment@v3 | |
id: fc | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: '<summary>R CMD check CRAN incoming feasibility</summary>' | |
- name: Create or update comment | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body-path: ${{ env.GITHUB_STEP_SUMMARY }} | |
edit-mode: replace |