# Multi-platform R CMD check, running on the GitHub mirror. # # This exists because the canonical Gitea runner is Linux-only, and this # package hard-depends on duckdb and httr2 -- both compiled, both with real # platform variance -- while having never been checked on Windows or macOS. # A large share of the audience is on Windows. # # Gitea reads .gitea/workflows and GitHub reads .github/workflows, so this # file is inert on the canonical repo and coexists with the Gitea CI that # remains authoritative for deploys. # # The suite needs NO credentials: tests/testthat/setup.R points USCOGDATA_URL # at the bundled fixture corpus. That is exactly why inst/extdata/fixture_corpus # must never be added to .Rbuildignore. on: push: branches: [main] pull_request: name: R-CMD-check permissions: read-all 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'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 - name: Drop the unused google-chrome apt source if: runner.os == 'Linux' run: sudo rm -f /etc/apt/sources.list.d/google-chrome.list # setup-r@v2 runs `sudo apt-get update` before installing R, and that # command fails outright if ANY configured apt source is broken -- # even one we never use. The google-chrome source baked into GitHub's # ubuntu-latest image intermittently serves a stale Packages.gz that # doesn't match its own Release file's hash (a Google CDN sync race, # not anything about R or this repo), which took down every ubuntu # leg of this matrix on 2026-09-09. Removing the source we don't need # makes that whole failure class impossible here. - 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 needs: check - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true build_args: 'c("--no-manual")'