72 lines
2.4 KiB
R
72 lines
2.4 KiB
R
source(file.path("local", "newer-r-helpers.R"))
|
|
source(file.path("local", "rebuild-missing-helpers.R"))
|
|
|
|
args <- commandArgs(trailingOnly = TRUE)
|
|
pos <- args[!startsWith(args, "--")]
|
|
if (!length(pos) %in% c(1L, 3L)) {
|
|
stop("Usage: build-newer-r.R PRIMARY_R [SPLIT_INTO SPLIT_INDEX] [--dry-run]")
|
|
}
|
|
primary_r <- pos[1L]
|
|
target_r <- as.character(getRversion())
|
|
pkgs <- newer_r_candidates(tools::CRAN_package_db(), primary_r, target_r)
|
|
exclude <- jsonlite::fromJSON("local/excluded-packages.json")[["package"]]
|
|
pkgs <- pkgs[!pkgs$Package %in% exclude, , drop = FALSE]
|
|
if (length(pos) == 3L) {
|
|
pkgs <- pkgs[
|
|
shard_slice(seq_len(nrow(pkgs)), pos[2L], pos[3L]),
|
|
,
|
|
drop = FALSE
|
|
]
|
|
}
|
|
message(sprintf(
|
|
"R %s: %d package(s) unsupported by primary R %s",
|
|
target_r,
|
|
nrow(pkgs),
|
|
primary_r
|
|
))
|
|
if ("--dry-run" %in% args) {
|
|
print(pkgs, row.names = FALSE)
|
|
} else {
|
|
options(crayon.enabled = TRUE, Ncpus = 4, future.globals.onReference = NULL)
|
|
for (i in seq_len(nrow(pkgs))) {
|
|
message(sprintf(
|
|
"[%d/%d] %s %s",
|
|
i,
|
|
nrow(pkgs),
|
|
pkgs$Package[i],
|
|
pkgs$Version[i]
|
|
))
|
|
bincraft::build_binary_package(
|
|
pkgs$Package[i],
|
|
tag = pkgs$Version[i],
|
|
# Keep bincraft's normal ABI routing: safe binaries can be shared;
|
|
# sensitive ones use this interpreter's minor for presence and output.
|
|
is_r_minor_sensitive = bincraft::classify_r_minor_sensitive(
|
|
pkgs$Package[i],
|
|
pkgs$Version[i],
|
|
metadata_db_host = "r-binaries.devxy.io",
|
|
metadata_db_name = "build_metadata",
|
|
metadata_db_user = "rpkgs",
|
|
metadata_db_password = Sys.getenv("PGPASS"),
|
|
metadata_db_sslmode = "require",
|
|
metadata_db_port = 15432
|
|
),
|
|
s3_endpoint = "https://s3.eu-central-003.backblazeb2.com",
|
|
s3_region = "eu-central-003",
|
|
s3_bucket = "devxy-rpkgs-binaries",
|
|
s3_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"),
|
|
s3_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"),
|
|
metadata_db_host = "r-binaries.devxy.io",
|
|
metadata_db_name = "build_metadata",
|
|
metadata_db_table = "single_builds",
|
|
metadata_db_user = "rpkgs",
|
|
metadata_db_password = Sys.getenv("PGPASS"),
|
|
metadata_db_sslmode = "require",
|
|
metadata_db_port = 15432,
|
|
archive = TRUE,
|
|
patches = "local/patches",
|
|
upload = TRUE,
|
|
store_build_metadata = TRUE
|
|
)
|
|
}
|
|
}
|