# ### 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}-${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'