build-cran-binaries/.woodpecker/build-alpine-320-arm64.yaml

132 lines
12 KiB
YAML

when:
- event: manual
evaluate: 'build == "all"'
- event: manual
evaluate: 'build == "alpine-320-arm64"'
- event: manual
evaluate: 'build == "all-arm64"'
skip_clone: true
steps:
- name: 'Warming up'
image: busybox:latest
failure: ignore
commands:
- sleep 300
- echo 'Warmed Up'
backend_options:
kubernetes:
resources:
requests:
memory: 14Gi
cpu: 3000m
limits:
memory: 14Gi
cpu: 3000m
nodeSelector:
kubernetes.io/arch: arm64
node.kubernetes.io/instance-type: cax31
tolerations:
- key: 'CI'
operator: 'Equal'
value: 'true'
effect: 'NoSchedule'
- name: 'Build binaries'
secrets: [red_hat_dev_pw, aws_access_key_id, aws_secret_access_key, pgpass, git_ro_token, GITHUB_PAT]
image: docker.io/devxygmbh/arm64-binaries-r-alpine-320
pull: true
# to ensure the PACKAGES upload step is being executed
failure: ignore
environment:
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
PLATFORM: alpine-320
BLOCK: 20896:length(pkgs)
ARCH: arm64
NCPUS: 2
MEMORY: 14Gi
INSTANCE_TYPE: cax31
STRATEGY: multisession
volumes:
- arm64-binaries-r-dep-cache-alpine-320:/mnt/cache
commands:
- git clone https://pat-s:$$git_ro_token@git.devxy.io/devxy/r-pkg-binaries.git .
- rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR
# for some reason paks pkgcache is often corrupt
- rm -rf /mnt/cache/R-pkgs/pkgcache/ /mnt/cache/pkgcache/ /root/.cache/R/
- R -q -e 'pak::pak("git::https://gitlab.com/devxy/r-package-binaries/bincraftr.git")'
- R -q -e 'packageVersion("bincraftR")'
- mkdir -p /mnt/cache/pkgcache /mnt/cache/R-pkgs /mnt/cache/ccache /mnt/cache/packages
- R -q -e 'install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/devel/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))'
# Windows-only: 'RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd'
- xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL); library(dplyr); library(bincraftR); pkgs = c('abmR', 'abn', 'abstr', 'abstractr', 'acdcR', 'ActCR', 'actel', 'activAnalyzer', 'actxps', 'acumos', 'adapt4pv', 'add2ggplot', 'adepro', 'adespatial', 'AdhereRViz', 'adw', 'africamonitor', 'ag5Tools', 'agriwater', 'aIc', 'AirExposure', 'ajv', 'alcyon', 'AlleleShift', 'almanac', 'alookr', 'altR2', 'amadeus', 'amt', 'angstroms', 'animalEKF', 'anipaths', 'AntMAN', 'APCalign', 'apcf', 'aPCoA', 'apisensr', 'Apollonius', 'appeears', 'AquaBEHER', 'arakno', 'arcgisgeocode', 'archive', 'arcpbf', 'areal', 'arealDB', 'aroma.affymetrix', 'aroma.cn', 'aroma.core', 'ARPALData', 'arrangements', 'artfima', 'asciicast', 'assignR', 'atakrig', 'atom4R', 'atpolR', 'audrex', 'audubon', 'autoBagging', 'autostats', 'av', 'AVGAS', 'aws', 'aws.wrfsmn', 'b64', 'badgen', 'baguette', 'bamm', 'BANAM', 'bangladesh', 'banter', 'bartCause', 'bartMan', 'base64', 'basemaps', 'basf', 'basifoR', 'bate', 'BAwiR', 'BayesfMRI', 'BayesOrdDesign', 'BayesVarSel', 'BayesXsrc', 'bbl', 'bcdata', 'bdc', 'bdl', 'BeeBDC', 'behaviorchange', 'bfboinet', 'bfsMaps', 'BIEN', 'bigDM', 'bigGP', 'bigrquerystorage', 'biocompute', 'biopixR', 'BioPred', 'bioregion', 'BiplotGUI', 'blackmarbler', 'blatr', 'blockCV', 'BoolFilter', 'boostingDEA', 'bpmnR', 'bRacatus', 'bratteli', 'BRBVS', 'brickster', 'brsim', 'BRugs', 'bs4Dash', 'BSPADATA', 'BSSoverSpace', 'BSTZINB', 'C50', 'CAinterprTools', 'Cairo', 'calendRio', 'calmate', 'camcorder', 'camtrapR', 'canadamaps', 'capm', 'carbonate', 'cartograflow', 'cartogram', 'cartogramR', 'cascsim', 'CaseBasedReasoning', 'cases', 'cati', 'catSurv', 'cauchypca', 'CausalGPS', 'causalHyperGraph', 'causalPAF', 'caviarpd', 'cbl', 'CCAMLRGIS', 'CCd', 'ccrs', 'cdlTools', 'cds', 'CDsampling', 'CDSE', 'CEEMDANML', 'cellKey', 'cellularautomata', 'censorcopula', 'CensSpatial', 'centerline', 'ceramic', 'CERFIT', 'Certara.RsNLME', 'cffdrs', 'cffr', 'cft', 'chatAI4R', 'ChernoffDist', 'chilemapas', 'chirps', 'chooseGCM', 'choosepc', 'CIMTx', 'cisp', 'cit', 'clarabel', 'cld3', 'cleangeo', 'cleanTS', 'clhs', 'ClickHouseHTTP', 'climateStability', 'CLimd', 'climetrics', 'clinDataReview', 'clrng', 'clusterMI', 'clustermole', 'clustTMB', 'ClusVis', 'CLVTools', 'cmprskcoxmsm', 'cmsaf', 'cmsafops', 'cnmap', 'CoastlineFD', 'CoClust', 'cohorttools', 'CoImp', 'colocr', 'colorfindr', 'colorist', 'colorizer', 'colormap', 'cols', 'comorosmaps', 'CompareMultipleModels', 'Compositional', 'CompositionalML', 'CompositionalRF', 'concaveman', 'ConcordanceTest', 'conmet', 'conos', 'consrq', 'constrainedKriging', 'ContaminatedMixt', 'conversim', 'cooltools', 'CoordinateCleaner', 'CopCTS', 'CopernicusDEM', 'CopulaCenR', 'copulaedas', 'coreCT', 'corrfuns', 'cosso', 'COST', 'countSTAR', 'covalchemy', 'coveR2', 'covid19india', 'CPC', 'cpmr', 'cppcheckR', 'cpss', 'CRE', 'creditmodel', 'crimeutils', 'CRMetrics', 'cropcircles', 'cropDemand', 'cropZoning', 'crsuggest', 'crumble', 'cruts', 'crwbmetareg', 'csa', 'cshapes', 'CSHShydRology', 'csmpv', 'CSTools', 'CTD', 'ctmcmove', 'ctmm', 'ctpm', 'ctrdata', 'CTRing', 'cubble', 'cubeview', 'cubing', 'CvmortalityMult', 'cylcop', 'cytometree', 'd4storagehub4R', 'DA', 'daff', 'dagitty', 'dagwood', 'daltoolboxdp', 'damAOI', 'dartR', 'dartR.base', 'dartR.captive', 'dartR.data', 'dartR.popgen', 'dartR.sexlinked', 'dartR.sim', 'dartR.spatial', 'datacleanr', 'dataone', 'datapack', 'datasetjson', 'dataspice', 'dbarts', 'DBHC', 'dblr', 'dbnlearn', 'dc3net', 'DCLEAR', 'DCluster', 'DClusterm', 'dcortools', 'dcorVS', 'dCovTS', 'ddml', 'DDPNA', 'deaR', 'decompDL', 'decomposedPSF', 'deducorrect', 'DeepLearningCausal', 'deepMOU', 'deforestable', 'delayed', 'dendroNetwork'); pkgs = setdiff(pkgs, c('RInno', 'MediaNews', 'doBy', 'DoE.base', 'DoE.wrapper', 'eha', 'FrF2', 'FrF2.catlg128', 'gRbase', 'gRain', 'IDPmisc', 'pbkrtest', 'RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd')); progressr::handlers('cli'); progressr::handlers(global = TRUE); foo = lapply(pkgs, function(x) bincraftR::build_binary_package(x, debug = FALSE, force = TRUE, platform = 'alpine-320'))"
### Manual pkg builds
# webshot2, tabledown, TestAnaAPP, trekcolors, Spectran, SimNPH, RPushbullet, SimDesign, simCAT, SIAmodules, shinytest2, ShinyItemAnalysis, shinyIRT, shiny.benchmark, scDIFtest, RSP, qtkit, PROsetta, prettifyAddins, PerFit, outlierensembles, nomnoml, mxfda, MultBiplotR, mstDIF, mdsr, makepipe, lordif, kequate, jstager, jrt, irtreliability, irtQ, irtpwr, irtGUI, irtawsi, GRShiny, GPCMlasso, googletraffic, giacR, flps, flow, faoutlier, equateIRT, EnrichIntersect, EFA.dimensions, DFIT, D3mirt, ctgdist, CoTiMA, ConvertPar, bscui, BifactorIndicesCalculator, autoFC, airt: wait for https://github.com/rstudio/r-system-requirements/pull/178
# RInno, MediaNews: Windows-only
# skedastic: waiting for ROI.plugin.qpoases (https://gitlab.com/roigrp/solver/ROI.plugin.qpoases/-/issues/1)
# rswipl: ccache issues: https://github.com/mgondan/rswipl/issues/3 -> solved
# Rpoppler: https://github.com/rstudio/r-system-requirements/pull/179/
# ROracle: sysdep missing -> create rule
# ROI.plugin.qpoases: https://gitlab.com/roigrp/solver/ROI.plugin.qpoases/-/issues/1
# ROI.plugin.cplex: checking for cplex... no -> requires propriatary software IBM Cplex
# RmecabKo: fatal error: mecab.h: No such file or directory
# rmarchingcubes: error: narrowing conversion of '-1' from 'int' to 'char' [-Wnarrowing] -> https://github.com/shwilks/rmarchingcubes/issues/3
# RcppMeCab: /bin/bash: line 2: mecab-config: command not found -> https://github.com/rstudio/r-system-requirements/pull/180
# Rcplex: checking for cplex... no -> requires propriatary software IBM Cplex
# Rblpapi: Unknown architecture: aarch64. Exiting. -> https://github.com/Rblp/Rblpapi/issues/399
# Rbeast: aarch64 issue -> https://github.com/zhaokg/Rbeast/issues/29
# ravetools: checking for FFTW... configure: error: Package requirements (fftw3) were not met: -> fftw3 rule needed
# Racmacs -> rmarchingcubes
# minic: /usr/include/c++/13/bits/stl_algo.h:5805:5: note: template argument deduction/substitution failed:
# KSgeneral -> aligned_mem.h:6:10: fatal error: mm_malloc.h: No such file or directory -> https://github.com/d-dimitrova/KSgeneral/issues/1
# gpuR -> /usr/bin/ld: cannot find -lOpenCL: No such file or directory -> no GPU avail
# clrng -> gpuR
# BRugs: configure: error: OpenBUGS 3.2.2 or later not found. as it is only one package, not doing anything
# gamstransfer -> gdx/src/gdlib/gmsstrm.cpp:85:70: error: narrowing conversion of '-1' from 'std::char_traits<char>::int_type' {aka 'int'} to 'char' [-Wnarrowing] -> https://github.com/GAMS-dev/transfer-r/issues/2
# filters: <simpleError: `target` must be a character vector containing no `NA` values.> -> email sent
# magickGUI, biplotbootGUI
# ymd (alpine, voi)
# tfrmtbuilder -> V8 (alpine)
# Rcmdr (alpine)
# readstata13 (alpine)
# - xvfb-run R -q -e 'options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL); pkgs = c( 'RcmdrPlugin.orloca', 'RcmdrPlugin.PcaRobust', 'RcmdrPlugin.RiskDemo', 'RcmdrPlugin.RMTCJags', 'RcmdrPlugin.ROC', 'RcmdrPlugin.sos' , 'RcmdrPlugin.survival', 'RcmdrPlugin.TeachingDemos', 'RcmdrPlugin.TeachStat', 'RcmdrPlugin.temis', 'RcmdrPlugin.UCA', 'RcmdrPlugin.WorldFlora', 'streamDAG', 'stan4bart', 'snplinkage', 'saeHB.panel.beta', 'rTwig', 'rswipl', 'RPointCloud', 'rPDBapi', 'rolog', 'rmcfs', 'rjags', 'ResultModelManager', 'RcppCWB', 'RcmdrPlugin.WorldFlora', 'RcmdrPlugin.UCA', 'RcmdrPlugin.temis', 'RcmdrPlugin.TeachStat', 'RcmdrPlugin.TeachingDemos', 'RcmdrPlugin.survival', 'RcmdrPlugin.sos', 'RcmdrPlugin.ROC', 'RcmdrPlugin.RMTCJags', 'RcmdrPlugin.RiskDemo', 'RcmdrPlugin.PcaRobust', 'RclusTool', 'Rbeast', 'rayrender', 'quanteda.textmodels', 'polmineR', 'plotBart', 'NlinTS', 'ndtv', 'overtureR', 'mathml', 'magickGUI', 'lgpr', 'KappaGUI', 'historicalborrow', 'GSODR', 'GRIDCOPULA', 'googleAnalyticsR', 'fluidsynth', 'EventDetectGUI', 'evalITR', 'EBcoBART', 'deeptrafo', 'dbarts', 'CRE', 'countSTAR', 'bartMan', 'bartCause', 'altmeta', 'EthSEQ', 'dartR.spatial', 'dartR.sim', 'gwid', 'Mega2R', 'priorCON', 'prior3D', 'MCARtest', 'designmatch', 'highs', 'ROI.plugin.highs', 'GPCMlasso'); library(bincraftR); options(progressr.enable = TRUE); foo = lapply(pkgs, function(x) build_binary_package(x, debug = FALSE, force = TRUE, platform = 'alpine-320'))'
backend_options:
kubernetes:
### PROD-parallel
resources:
requests:
memory: 14Gi
cpu: 3000m
limits:
memory: 14Gi
cpu: 3000m
### PROD-sequential
# resources:
# requests:
# memory: 14Gi
# cpu: 2000m
# limits:
# memory: 14Gi
# cpu: 3000m
# DEBUG
# resources:
# requests:
# memory: 4Gi
# cpu: 2000m
# limits:
# memory: 4Gi
# cpu: 2000m
nodeSelector:
kubernetes.io/arch: arm64
node.kubernetes.io/instance-type: cax31
tolerations:
- key: 'CI'
operator: 'Equal'
value: 'true'
effect: 'NoSchedule'