refactor(ci): use multi-R-version images across workflows #70
Loading…
Reference in a new issue
No description provided.
Delete branch "t3code/eb891def"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
.crow/*.yamlworkflows, theJustfile, and the commented-outbuild-all-versions-install-deps.yamltemplate to the new multi-R-version container images.-${R_VERSION}(e.g.build-env-alpine:3.22-4.5→build-env-alpine:3.22); workflows pick an R version by calling/opt/R/${R_VERSION}/bin/Rexplicitly.R_VERSION:env var per file.build-all-versions-*, matrix-driven) continue to receiveR_VERSIONviacrow pipeline create --var.Platform → R_VERSION mapping
build-env-alpine:3.{22,23}build-env-ubuntu:{jammy,noble}build-env-redhat:{8,9}build-env-redhat:10The
alpine-321audit-only workflows fall back tobuild-env-alpine:3.23since no 3.21 image exists in the new scheme; the audits only query S3/CRAN, so the container OS does not affect correctness.Bug fixes folded in
weekly-audit-missing-alpine-*.yamlfiles were pinned toalpine:3.23-4.5regardless of platform.Now each one points at its own alpine image.
update-package-index-*.yamlfiles were pinned tobuild-env-ubuntu:noble-4.4(ornoble-4.5forredhat-10-amd64) regardless of platform.Now each one uses its own platform's image.
process-updates-ubuntu-2404-{amd64,arm64}.yamlhadR_VERSIONof4.4(no patch) baked into the tag.Aligned to
4.4.3, matching the audit and rebuild counterparts.Smoke targets (post-merge)
One workflow per shape, ready to dry-run:
process-updates-alpine-322-amd64.yamlweekly-rebuild-missing-redhat-9-amd64.yamlweekly-audit-missing-ubuntu-2204-amd64.yamlupdate-package-index-redhat-10-amd64.yamlarchive-missed-packages.yamlbuild-all-versions-amd64.yaml(with its install-deps predecessor)build-r-minor-sensitive-packages.yamlFollow-ups (out of scope, surfaced during review)
process-updates-redhat-10-{amd64,arm64}.yamlsetcodename = "rhel9"in theirupload_package_index(...)calls.Pre-existing bug — should be
"rhel10". Theupdate-package-index-redhat-10-*counterparts already use"rhel10"correctly.update-package-index-redhat-8-amd64.yamlis missing thepackageVersion("bincraft")diagnostic line that every sibling file has.Pre-existing asymmetry between amd64 and arm64.
Spec & plan
docs/superpowers/specs/2026-05-25-multi-r-version-images-design.mddocs/superpowers/plans/2026-05-25-multi-r-version-images.mdImage tag drops the R version (e.g., build-env-alpine:3.23 instead of :3.23-4.5); workflows pick an R version by calling /opt/R/${R_VERSION}/bin/R explicitly. Includes three folded-in bug fixes (alpine audit images, package-index images, ubuntu-2404 R patch).Drop -${R_VERSION} from the image tag and invoke R/Rscript via the explicit /opt/R/${R_VERSION}/bin/ path.Drop the R-version suffix from each image tag, add an explicit R_VERSION env var per file, and invoke R via /opt/R/${R_VERSION}/bin/R at every call site. Also aligns ubuntu-2404 process-updates from R 4.4 to R 4.4.3, matching the audit and rebuild counterparts.Drop the R-version suffix from each image tag, add an explicit R_VERSION env var per file, and invoke R via /opt/R/${R_VERSION}/bin/R at every call site.Drop the R-version suffix from each image tag, add an explicit R_VERSION env var per file, and invoke R via /opt/R/${R_VERSION}/bin/R at every call site. Also fixes the alpine-322 audit image, which was previously pointing at alpine:3.23 instead of alpine:3.22. The alpine-321 audits stay on alpine:3.23 since no 3.21 image exists in the new scheme — they only query S3/CRAN, so the container OS does not affect correctness.Drop the R-version suffix from each image tag, add an explicit R_VERSION env var per file, and invoke R via /opt/R/${R_VERSION}/bin/R at every call site. Also repoints every update-package-index workflow at the image that matches its own platform (was previously pinned to build-env-ubuntu:noble-4.4 / noble-4.5 regardless of platform).Drop the R-version suffix from the image tag and invoke R via the explicit /opt/R/${R_VERSION}/bin/R path. The image OS does not matter for this workflow; it stays on alpine:3.23.Drop -${r_version} from the docker.io/devxygmbh tag and invoke R via the explicit /opt/R/${r_version}/bin/R path (including R CMD INSTALL). Bumps the matrix r_version values from 4.5/4.4 to the full-patch 4.5.3/4.4.3, matching the rest of the refactor's 'always full patch' rule.Drop -{{R_VERSION}} from the image tag and invoke R via the explicit /opt/R/{{R_VERSION}}/bin/R path in build-all, build-single, and process-updates. Updates example comments to use current platform/R combinations.The amd64 variant of the redhat-8 package-index workflow was missing the packageVersion("bincraft") diagnostic line that every sibling file (including its arm64 counterpart) runs after pak install.Strict YAML parsers reject the colon separating ${OS} and ${OS_VERSION} in an unquoted scalar (it looks like a mapping value). Wrap the whole image value in double quotes to make it an unambiguous string. Mirrors the convention already used by build-r-minor-sensitive-packages.yaml.