ci: multi-platform R CMD check for the GitHub mirror #53

Merged
jared merged 1 commits from ci/github-actions-matrix into main 2026-08-08 19:54:02 -04:00
Owner

Summary

Adds .github/workflows/R-CMD-check.yaml — the Windows/macOS/Linux matrix from #46.

Landing it ahead of the mirror (#44) is deliberate and safe: Gitea reads .gitea/workflows, GitHub reads .github/workflows, so this file is inert here and the existing Gitea CI stays authoritative for deploys. It goes live the moment the mirror repo exists, with no follow-up commit.

Matrix: macos-latest (release), windows-latest (release), ubuntu-latest (release + devel).

Why this matters

The package hard-depends on duckdb and httr2 — both compiled, both with real platform variance — and has never been checked on Windows or macOS. The Gitea runner is Linux-only and cannot provide this. A large share of the audience for a government-finance R package is on Windows.

This is the single biggest technical argument for the mirror, and it is a correctness gain rather than a distribution one.

No credentials needed

tests/testthat/setup.R points USCOGDATA_URL at the bundled fixture corpus, so the matrix runs fully offline. That is exactly why inst/extdata/fixture_corpus must never be added to .Rbuildignore — asserted by a test as of #41.

Test plan

  • YAML parses (yaml.safe_load)
  • ^\.github$ already in .Rbuildignore, so the workflow does not ship in the tarball
  • Gitea CI green on this branch (it ignores .github/)
  • Matrix actually runs — not verifiable until #44 creates the mirror. First real run is the test.

Follow-ups

  • A CI status badge for the README, once the mirror exists and the workflow has run once. Not added now to avoid a second dead badge sitting next to the r-universe one.
  • The PR-comment action explaining the contribution flow (also #46) still to do.
## Summary Adds `.github/workflows/R-CMD-check.yaml` — the Windows/macOS/Linux matrix from #46. Landing it ahead of the mirror (#44) is deliberate and safe: **Gitea reads `.gitea/workflows`, GitHub reads `.github/workflows`**, so this file is inert here and the existing Gitea CI stays authoritative for deploys. It goes live the moment the mirror repo exists, with no follow-up commit. Matrix: `macos-latest` (release), `windows-latest` (release), `ubuntu-latest` (release + devel). ## Why this matters The package hard-depends on **duckdb** and **httr2** — both compiled, both with real platform variance — and has **never been checked on Windows or macOS**. The Gitea runner is Linux-only and cannot provide this. A large share of the audience for a government-finance R package is on Windows. This is the single biggest technical argument for the mirror, and it is a correctness gain rather than a distribution one. ## No credentials needed `tests/testthat/setup.R` points `USCOGDATA_URL` at the bundled fixture corpus, so the matrix runs fully offline. That is exactly why `inst/extdata/fixture_corpus` must never be added to `.Rbuildignore` — asserted by a test as of #41. ## Test plan - [x] YAML parses (`yaml.safe_load`) - [x] `^\.github$` already in `.Rbuildignore`, so the workflow does not ship in the tarball - [x] Gitea CI green on this branch (it ignores `.github/`) - [ ] Matrix actually runs — **not verifiable until #44 creates the mirror**. First real run is the test. ## Follow-ups - A CI status badge for the README, once the mirror exists and the workflow has run once. Not added now to avoid a second dead badge sitting next to the r-universe one. - The PR-comment action explaining the contribution flow (also #46) still to do.
jared added 1 commit 2026-08-08 19:50:06 -04:00
ci: multi-platform R CMD check for the GitHub mirror
R-CMD-check / check (push) Successful in 3m27s
R-CMD-check / check (pull_request) Successful in 3m19s
6392a74013
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.

Inert here: Gitea reads .gitea/workflows, GitHub reads .github/workflows,
so both configs coexist and the Gitea CI stays authoritative for deploys.
This goes live the moment the mirror repo exists (#44).

The matrix needs no credentials -- setup.R points at the bundled fixture --
which is why that fixture must never be .Rbuildignore'd.
jared merged commit fe9238a6ef into main 2026-08-08 19:54:02 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Civilytics/uscogdata#53