### 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-alpine:${OS_VERSION}-${R_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 - 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))' - R -q -e 'pak::pak("git::https://codefloe.com/rpkgs/bincraft.git", dependencies = TRUE)' - R -q -e 'packageVersion("bincraft")' # - R -q -e "future::plan('multisession', workers = 6L); pkgs = bincraft::query_packages_without_historic_versions('alpine322', 'amd64'); saveRDS(pkgs, '/mnt/cache/pkgs_amd64.rds')" - 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'