diff --git a/.crow/build-all-versions-amd64.yaml b/.crow/build-all-versions-amd64.yaml index 145aba2..d1b12a5 100644 --- a/.crow/build-all-versions-amd64.yaml +++ b/.crow/build-all-versions-amd64.yaml @@ -35,7 +35,7 @@ matrix: BACKEND: kubernetes depends_on: - - build-all-versions-install-deps + - build-all-versions-install-deps-amd64 steps: - name: 'Build binaries' diff --git a/.crow/build-all-versions-arm64.yaml b/.crow/build-all-versions-arm64.yaml index a24882c..1467da8 100644 --- a/.crow/build-all-versions-arm64.yaml +++ b/.crow/build-all-versions-arm64.yaml @@ -50,7 +50,7 @@ matrix: # BACKEND: docker depends_on: - - build-all-versions-install-deps + - build-all-versions-install-deps-arm64 steps: - name: 'Build binaries' diff --git a/.crow/build-all-versions-install-deps.yaml b/.crow/build-all-versions-install-deps-amd64.yaml similarity index 96% rename from .crow/build-all-versions-install-deps.yaml rename to .crow/build-all-versions-install-deps-amd64.yaml index 0306d30..a07ea12 100644 --- a/.crow/build-all-versions-install-deps.yaml +++ b/.crow/build-all-versions-install-deps-amd64.yaml @@ -1,6 +1,6 @@ when: - event: manual - evaluate: 'task == "build-all-amd64" || task == "build-all-arm64"' + evaluate: 'task == "build-all-amd64"' skip_clone: true diff --git a/.crow/build-all-versions-install-deps-arm64.yaml b/.crow/build-all-versions-install-deps-arm64.yaml new file mode 100644 index 0000000..4639249 --- /dev/null +++ b/.crow/build-all-versions-install-deps-arm64.yaml @@ -0,0 +1,56 @@ +when: + - event: manual + evaluate: 'task == "build-all-arm64"' + +skip_clone: true + +labels: + agent: gaia + +steps: + - name: 'Install deps and bincraft' + 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 + B2_S3_ACCESS_KEY: + from_secret: B2_S3_ACCESS_KEY + B2_S3_SECRET_KEY: + from_secret: B2_S3_SECRET_KEY + PGPASS: + from_secret: PGPASS + 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: + # one-time full wipe to fix corrupted .so files from previous failed builds + # - rm -rf /mnt/cache/R-pkgs + - mkdir -p /mnt/cache/pkgcache /mnt/cache/R-pkgs /mnt/cache/ccache /mnt/cache/packages + - git clone -q https://pat-s:$$REPO_RO_TOKEN@git.devxy.io/devxy/build-cran-binaries.git . + - git clone -q https://codefloe.com/rpkgs/bincraft.git /tmp/bincraft + - R -q -e 'pak::sysreqs_db_update(); pak::local_install("/tmp/bincraft"); pak::pak(c("RPostgres", "s3fs", "data.table", "future")); packageVersion("bincraft")' + - R -q -e "source('local/packages-to-build.R'); saveRDS(pkgs, '/mnt/cache/packages/pkgs_to_build.rds'); sprintf('Precomputed %s packages to build', length(pkgs))" + backend_options: + docker: + resources: + requests: + memory: 5Gi + cpu: 1000m + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 1000m + nodeSelector: + kubernetes.io/arch: ${ARCH} + node.kubernetes.io/instance-type: ${K8S_INSTANCE_TYPE} + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule'