build-cran-binaries/build-all-versions-install-deps.yaml
pat-s 5c88b2bc37
refactor: keep commented build-all-versions-install-deps example in sync
Mirror the multi-R-version image refactor in the commented-out
template so the example remains faithful to active .crow workflows.
2026-05-25 23:02:21 +02:00

63 lines
2.6 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 the 'pkgcache' cache dir which persists the R package dependencies needed to install the packages themselves
# # R_PKG_CACHE_DIR: /mnt/cache/pkgcache
# 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/pkgcache
# - /opt/R/${R_VERSION}/bin/R -q -e 'install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))'
# - /opt/R/${R_VERSION}/bin/R -q -e 'pak::pak("git::https://codefloe.com/rpkgs/bincraft.git", dependencies = TRUE)'
# - /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'