Skip to content

feat: extra-env input on R-CMD-check and test-coverage - #26

Merged
eliotmcintire merged 1 commit into
mainfrom
feat/extra-env
Aug 31, 2026
Merged

eliotmcintire merged 1 commit into
mainfrom
feat/extra-env

Conversation

@eliotmcintire

Copy link
Copy Markdown
Contributor

Unblocks the migration of the remaining packages onto the org workflows.

Why

Surveying the 17 repos still carrying their own R-CMD-check.yaml turned up per-package env that these workflows cannot enumerate and had no way to accept:

var repos
OMP_THREAD_LIMIT: 4 quickPlot
R_KEEP_PKG_SOURCE climateData, fpCompare
R_PKG_INSTALL_RETRIES SpaDES.shiny
_R_CHECK_THINGS_IN_OTHER_DIRS_ (Ubuntu) Require

Without an escape hatch, migrating those repos means silently dropping settings — and "silently dropped" is the failure mode this repo keeps having to dig out of.

What

with:
  extra-env: |
    OMP_THREAD_LIMIT=4
    R_KEEP_PKG_SOURCE=yes

Newline-separated KEY=VALUE; blank lines and #-comments ignored. Applied immediately after checkout and before setup-r-deps, so it reaches dependency resolution rather than only the check step. A line that is not KEY=VALUE fails the step rather than being quietly skipped.

Added to both R-CMD-check.yaml and test-coverage.yaml, since several of these vars affect test behaviour and so matter under covr too.

Carried along

The GOOGLEDRIVE_AUTH secret description still advertised service-account keys as accepted, which #24 made a hard failure. Refreshed in both workflows.

Not covered

Require also gates R_REQUIRE_RUN_LONG_CI on a runLong: true flag on one matrix leg. extra-config can add the leg, but the workflow does not propagate arbitrary matrix keys into env, so Require still needs work beyond this. It is the last repo I would migrate.

🤖 Generated with Claude Code

https://claude.ai/code/session_012DVjmY3im9Xak7tXLSMGCa

Blocks the migration of most remaining packages onto these workflows. A survey
of the 17 repos still carrying their own R-CMD-check.yaml found per-package env
this workflow cannot enumerate and had no way to accept: OMP_THREAD_LIMIT
(quickPlot), R_KEEP_PKG_SOURCE (climateData, fpCompare), R_PKG_INSTALL_RETRIES
(SpaDES.shiny), _R_CHECK_THINGS_IN_OTHER_DIRS_ (Require). Without this input
those packages could not migrate without silently dropping settings, and
"silently dropped" is the failure mode this repo keeps having to dig out of.

Newline-separated KEY=VALUE, blank lines and #-comments ignored, applied before
setup-r-deps so it reaches dependency resolution and not just the check. A line
that is not KEY=VALUE fails the step rather than being skipped.

Also refreshes the GOOGLEDRIVE_AUTH secret description, which still advertised
service-account keys as accepted after #24 made them a hard failure.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012DVjmY3im9Xak7tXLSMGCa
@eliotmcintire
eliotmcintire merged commit 66de265 into main Aug 31, 2026
1 check passed
eliotmcintire added a commit that referenced this pull request Aug 31, 2026
The workflow-level extra-env from #26 is static, so it cannot express env that
varies across the matrix. Require gates its slow tests on exactly one leg
(R_REQUIRE_RUN_LONG_CI, driven by a runLong flag) specifically so its 11-job
matrix does not camp on GHA's concurrency cap. That made Require the one repo
that could not migrate onto this workflow at all.

An extra-config leg may now carry its own `extra-env`, applied after the
workflow-level block so a leg can override it. Generic rather than
Require-shaped: any caller can vary env per leg.


Claude-Session: https://claude.ai/code/session_012DVjmY3im9Xak7tXLSMGCa

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@eliotmcintire
eliotmcintire deleted the feat/extra-env branch September 9, 2026 21:30
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