bincraft dropped pak in favour of uvr, so the pipelines, helper scripts and images in this repo move with it. - add local/uvr-install.sh as the single replacement for pak::pak(); it bootstraps a pinned uvr, mints a throwaway project under TMPDIR and runs `uvr add --no-install` + `uvr sync --library`, because `uvr add` refuses to run outside a project and only `sync` honours --library - install bincraft via its Forgejo spec (forgejo::codefloe.com/rpkgs/ bincraft@<tag>) instead of a git:: URL, keeping the git ls-remote tag resolution - pass UVR_R_BIN/UVR_TARGET_LIB from install-bincraft.R so the per-R-minor passes target their own R and library - replace R_PKG_CACHE_DIR with UVR_CACHE_DIR/UVR_PACKAGES_DIR on the persistent volume, preserving the amd64-off/arm64-on split - drop trim_pkgcache_metadata() and its test; uvr's cache does not grow the way pkgcache's _metadata dir did - let uvr install system requirements from its vendored r-system-requirements rules, replacing pak::sysreqs_db_update() - migrate the shiny app image, the alpine reprex and the CRAN loading test; ship uvr-install.sh in the build-one image - track the uvr pin with renovate
63 lines
2.4 KiB
YAML
63 lines
2.4 KiB
YAML
# ### Required extra vars
|
|
# # ARCH (amd64)
|
|
# # OS (alpine)
|
|
# # OS_VERSION (3.22)
|
|
# # R_VERSION (4.5)
|
|
# # when:
|
|
# # - event: manual
|
|
# # evaluate: 'task == "build-all-arm64"'
|
|
# # - event: manual
|
|
# # evaluate: 'task == "build-all-amd64"'
|
|
|
|
# skip_clone: true
|
|
|
|
# labels:
|
|
# platform: linux/amd64
|
|
# backend: kubernetes
|
|
|
|
# steps:
|
|
# - name: 'Install common R deps'
|
|
# image: "reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}"
|
|
# pull: true
|
|
# environment:
|
|
# REPO_RO_TOKEN:
|
|
# from_secret: REPO_RO_TOKEN
|
|
# GITHUB_PAT:
|
|
# from_secret: GITHUB_PAT
|
|
# HETZNER_S3_ACCESS_KEY_K3S:
|
|
# from_secret: HETZNER_S3_ACCESS_KEY_K3S
|
|
# HETZNER_S3_SECRET_KEY_K3S:
|
|
# from_secret: HETZNER_S3_SECRET_KEY_K3S
|
|
# # normal env vars
|
|
# GIT_USER: pat-s
|
|
# # set the location of uvr's caches, which persist the R package dependencies needed to install the packages themselves
|
|
# # UVR_CACHE_DIR: /mnt/cache/uvr/cache
|
|
# # UVR_PACKAGES_DIR: /mnt/cache/uvr/packages
|
|
# R_LIBS_USER: /mnt/cache/R-pkgs
|
|
# CCACHE_DIR: /mnt/cache/ccache
|
|
# volumes:
|
|
# - ${ARCH}-binaries-r-dep-cache-${OS}-${OS_VERSION//./}:/mnt/cache
|
|
# commands:
|
|
# - git clone -q https://pat-s:$$REPO_RO_TOKEN@git.devxy.io/devxy/build-cran-binaries.git .
|
|
# - mkdir -p /mnt/cache/R-pkgs
|
|
# - rm -rf /mnt/cache/R-pkgs/00LOCK-* /mnt/cache/R-pkgs/bincraft /mnt/cache/uvr
|
|
# - UVR_R_BIN=/opt/R/$R_VERSION/bin/R local/uvr-install.sh forgejo::codefloe.com/rpkgs/bincraft
|
|
# - /opt/R/$R_VERSION/bin/R -q -e 'packageVersion("bincraft")'
|
|
# # - /opt/R/$R_VERSION/bin/R -q -e "future::plan('multisession', workers = 6L); pkgs = bincraft::query_packages_without_historic_versions('alpine322', 'amd64'); saveRDS(pkgs, '/mnt/cache/pkgs_amd64.rds')"
|
|
# - /opt/R/$R_VERSION/bin/R -q -e "future::plan('multisession', workers = 6L); pkgs = bincraft::query_packages_without_historic_versions('alpine323', 'arm64'); saveRDS(pkgs, '/mnt/cache/pkgs_arm64.rds')"
|
|
# backend_options:
|
|
# kubernetes:
|
|
# resources:
|
|
# requests:
|
|
# memory: 1000Mi
|
|
# cpu: 1000m
|
|
# limits:
|
|
# memory: 4500Mi
|
|
# cpu: 8000m
|
|
# nodeSelector:
|
|
# kubernetes.io/arch: ${ARCH}
|
|
# tolerations:
|
|
# - key: 'CI'
|
|
# operator: 'Equal'
|
|
# value: 'true'
|
|
# effect: 'NoSchedule'
|