Skip to content

ci: move every workflow to the org reusable templates - #44

Open
eliotmcintire wants to merge 1 commit into
mainfrom
ci/thin-callers-all-workflows
Open

ci: move every workflow to the org reusable templates#44
eliotmcintire wants to merge 1 commit into
mainfrom
ci/thin-callers-all-workflows

Conversation

@eliotmcintire

Copy link
Copy Markdown
Contributor

Supersedes #42. Every workflow becomes a thin caller on PredictiveEcology/actions
198 → 112 lines, and no workflow file here runs a job of its own any more.

Workflow Before After Customisation
R-CMD-check 57 32 extra-config (matrix legs only)
test-coverage 36 29 none
pkgdown 48 19 none
revdeps 57 30 none

Three bugs this fixes

1. Neither R-CMD-check nor test-coverage has ever run on main. Both
triggered on [master, development]. There is no master branch, and the
default branch is main — so pushes and PRs to the default branch got no check
and no coverage at all.

2. The declared R floor was never tested. DESCRIPTION says R (>= 4.3).
With release at 4.6, that floor is oldrel-3, and the hand-rolled matrix
stopped at oldrel-2 — so the DESCRIPTION claim was unverified. Added.

3. revdeps ran on every pull_request, across three OSes. The shared
action's own README warns revdep checks are too resource intensive for standard
runners, and each revdep gets a full R CMD check with its dependency closure
installed first. That is hours of runner time per PR for a signal almost no PR
changes. Now workflow_dispatch plus the existing weekly schedule, on the
shared single-leg default.

It also drops the stale install-spatial-deps@v0.3 pin — what #43 was opened
to fix. Every tag of that action adds the ubuntugis PPA, whose libgdal37 is
ABI-incompatible with Posit's noble cache.

Customisations dropped, with reasons

You asked whether we need any. Assessed individually:

  • OMP_THREAD_LIMIT: 4 — quickPlot has no src/ and no parallel or OpenMP
    use anywhere in R/. Inherited boilerplate.
  • systemfonts in the revdeps extra-packages — not referenced in
    DESCRIPTION, R/, tests/ or vignettes/, and not transitively reachable
    from any declared dependency. Better restored if a revdep run actually needs
    it than carried on spec.
  • The per-job [skip-ci] guards — now honoured by the shared workflows
    themselves (feat: honour [skip-ci] org-wide; add a reusable revdeps workflow actions#34), so callers no longer need them.

Everything else is the shared default.

⚠️ Behaviour changes

Coverage moves macOS → ubuntu and gains NOT_CRAN=true. skip_on_cran()
tests now run under coverage. That raises the measured figure — and can surface
tests that had never executed in CI. Require hit exactly that on this migration:
a test gated on NOT_CRAN and dpkg-query had never run anywhere, because
coverage was on macOS (no dpkg-query) and R CMD check skips skip_on_cran().
Worth watching this PR's coverage run for the same.

The matrix gains a nosuggests (_R_CHECK_DEPENDS_ONLY_) leg this repo
never had.

Why not #42

It is CONFLICTING, covers only three of the four workflows (leaving revdeps
hand-rolled), and carries unrelated DESCRIPTION, NEWS.md, README.md,
cran-comments.md and CRAN-SUBMISSION changes. Recommend closing it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NNLtKFXrNPN2XvuAjsy4Sy

All four workflows become thin callers on PredictiveEcology/actions.
198 -> 112 lines, and no workflow file here runs its own job any more.

    R-CMD-check      57 -> 32
    test-coverage    36 -> 29
    pkgdown          48 -> 19
    revdeps          57 -> 30

Three of the four have zero customisation. The exception is
R-CMD-check's extra-config, and only for matrix legs.

## Bugs this fixes

R-CMD-check and test-coverage triggered on [master, development]. There
is no `master` branch and the default branch is `main`, so NEITHER had
ever run on main -- pushes and PRs to the default branch got no check and
no coverage at all.

DESCRIPTION declares R (>= 4.3). With release at 4.6 that floor is
oldrel-3, which the hand-rolled matrix never tested; it stopped at
oldrel-2. The declared minimum was an unverified claim. Added.

revdeps ran on pull_request across a three-OS matrix. The shared action's
own README warns revdep checks are too resource intensive for standard
runners, and each revdep gets a full R CMD check with its dependency
closure installed first -- hours of runner time per PR for a signal
almost no PR changes. Now dispatch plus the existing weekly schedule, on
the shared single-leg default.

Drops the stale install-spatial-deps@v0.3 pin, which PR #43 was opened to
fix: every tag of that action adds the ubuntugis PPA, whose libgdal37 is
ABI-incompatible with Posit's noble cache.

## Customisations deliberately dropped

OMP_THREAD_LIMIT: 4 -- quickPlot has no src/ and no parallel or OpenMP
use anywhere in R/. Inherited boilerplate.

systemfonts in the revdeps extra-packages -- not referenced in
DESCRIPTION, R/, tests/ or vignettes/, and not transitively reachable
from any declared dependency. Restore it if a revdep run actually needs
it, rather than carrying it on spec.

The per-job [skip-ci] guards -- now honoured by the shared workflows
themselves (PredictiveEcology/actions#34).

## Behaviour changes worth knowing

Coverage moves macOS -> ubuntu and gains NOT_CRAN=true from the shared
workflow, so skip_on_cran() tests now run under coverage. That raises the
measured figure and can surface tests that had never executed in CI.
Require hit exactly that on migration.

The matrix gains a nosuggests (_R_CHECK_DEPENDS_ONLY_) leg, which this
repo never had.

Supersedes #42, which is CONFLICTING and covers only three of the four
workflows while also carrying DESCRIPTION, NEWS.md, README.md,
cran-comments.md and CRAN-SUBMISSION changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNLtKFXrNPN2XvuAjsy4Sy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant