diff --git a/local/build-all.R b/local/build-all.R index f10468b..651a0c7 100644 --- a/local/build-all.R +++ b/local/build-all.R @@ -40,21 +40,10 @@ exclude <- c( ) chunk <- chunk[!chunk$Package %in% exclude, ] -# Bulk S3 listing upfront — avoids per-package S3 calls -s3fs::s3_file_system( - aws_access_key_id = Sys.getenv("B2_S3_ACCESS_KEY"), - aws_secret_access_key = Sys.getenv("B2_S3_SECRET_KEY"), - endpoint = "https://s3.eu-central-003.backblazeb2.com", - region_name = "eu-central-003", - refresh = TRUE -) -codename <- bincraft::set_codename(NULL) -local_arch <- Sys.info()[["machine"]] -arch <- if (grepl("arm64|aarch64", local_arch)) "arm64" else "amd64" -s3_cache <- basename(s3fs::s3_dir_ls( - sprintf("devxy-rpkgs-binaries/%s/%s/latest/src/contrib", arch, codename), - recurse = TRUE -)) +# Read pre-computed S3 listing from install-deps step +# This avoids loading s3fs/reticulate/Python in the build container, +# saving significant memory for pak subprocess forks +s3_cache <- readRDS("/mnt/cache/packages/s3_cache.rds") sprintf("S3 cache: %s files", length(s3_cache)) n <- nrow(chunk) diff --git a/local/packages-to-build.R b/local/packages-to-build.R index 043a9c0..91ee96e 100644 --- a/local/packages-to-build.R +++ b/local/packages-to-build.R @@ -83,6 +83,10 @@ s3_pkgs = s3fs::s3_dir_ls( recurse = TRUE ) +# Save the raw S3 file listing for the build step to use as s3_package_cache +# This avoids loading s3fs/reticulate in the build container, saving memory for pak forks +saveRDS(basename(s3_pkgs), "/mnt/cache/packages/s3_cache.rds") + file_names <- basename(s3_pkgs) matches <- regexec("^([A-Za-z0-9.]+)_([0-9][^/]*)\\.tar\\.gz$", file_names) parts <- regmatches(file_names, matches)