diff --git a/.crow/build-alpine-320-amd64-single.yaml b/.crow/build-alpine-320-amd64-single.yaml new file mode 100644 index 0000000..03cd845 --- /dev/null +++ b/.crow/build-alpine-320-amd64-single.yaml @@ -0,0 +1,105 @@ +when: + - event: manual + evaluate: 'build == "all"' + # - event: manual + # evaluate: 'build == "alpine-320-amd64"' + - event: manual + evaluate: 'build == "alpine-320-amd64-0"' + - event: manual + evaluate: 'build == "all-amd64"' + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/amd64-binaries-r-alpine-320 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: alpine-320 + ARCH: amd64 + NCPUS: 2 + STRATEGY: sequential + # volumes: + # - amd64-binaries-r-dep-cache-alpine-320:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - R -q -e 'packageVersion("bincraftR")' + - mkdir -p /mnt/cache/pkgcache /mnt/cache/R-pkgs /mnt/cache/ccache /mnt/cache/packages + # Windows-only: 'RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd', 'rFUSION', 'MediaNews' + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL); pkgs = c('ieegio', 'integr', 'interpolation', 'intkrige', 'intRinsic', 'intSDM', 'IOLS', 'ipanema', 'ipdw', 'ipsecr', 'IRkernel', 'irtawsi', 'isocat', 'IsoriX', 'ISRaD', 'itcSegment', 'itsdm', 'ivdoctr', 'janus', 'jdenticon', 'JFM', 'jrSiCKLSNMF', 'kazaam', 'KeyboardSimulator', 'lgpr', 'MDSGUI', 'medfateland', 'MediaNews', 'Mega2R', 'MetabolomicsBasics', 'minired', 'moc.gapbk', 'ModTools', 'MolgenisArmadillo', 'mpae', 'MPCR', 'noisemodel', 'ODT', 'omsvg', 'onsvtables', 'OpenCL', 'openrouteservice', 'opinAr', 'overturemapsr', 'palaeoverse', 'parqr', 'parquetize', 'pastclim', 'pbdMPI', 'pbdSLAP', 'pcaL1', 'PCRA', 'pgenlibr', 'pheble', 'phonics', 'plot3Drgl', 'plotdap', 'plothelper', 'plumberDeploy', 'plusCode2', 'pmclust', 'pMEM', 'Poly4AT', 'polyhedralCubature', 'polymapR', 'pooledpeaks', 'PoPdesign', 'PopGenReport', 'populR', 'portfolio.optimization', 'postdoc', 'potential', 'povmap', 'poweRbal', 'PoweREST', 'PPbigdata', 'ppcSpatial', 'ppgm', 'PPMiss', 'PPRL', 'ppsbm', 'praatpicture', 'practicalSigni', 'predhy.GUI', 'predict3d', 'predicts', 'predtoolsTS', 'presenter', 'pressuRe', 'PrevMap', 'prevR', 'prior3D', 'priorCON', 'prioritizr', 'prism', 'PRISMA2020', 'prismjs', 'prisonbrief', 'profExtrema', 'proffer', 'ProfoundData', 'proj4', 'protolite', 'prqlr', 'prWarp', 'psBayesborrow', 'psgp', 'psSubpathway', 'qad', 'QF', 'qlcVisualize', 'qmd', 'QRAGadget', 'qrencoder', 'qrlabelr', 'QRM', 'qspray', 'qsub', 'qtlc', 'quadmesh', 'quadtree', 'qualmap', 'R2BayesX', 'R2PPT', 'R2wd', 'r4lineups', 'Racmacs', 'RAINBOWR', 'randomcoloR', 'RandomWalker', 'Rata', 'Rblpapi', 'rblt', 'rccola', 'RcmdrMisc', 'RcmdrPlugin.aRnova', 'RcmdrPlugin.BiclustGUI', 'RcmdrPlugin.BWS1', 'RcmdrPlugin.BWS2', 'RcmdrPlugin.BWS3', 'RcmdrPlugin.cpd', 'RcmdrPlugin.DCCV', 'RcmdrPlugin.DCE', 'RcmdrPlugin.depthTools', 'RcmdrPlugin.DoE', 'RcmdrPlugin.EACSPIR', 'RcmdrPlugin.EBM', 'RcmdrPlugin.EcoVirtual', 'RcmdrPlugin.Export', 'RcmdrPlugin.EZR', 'RcmdrPlugin.FactoMineR', 'RcmdrPlugin.GWRM', 'RcmdrPlugin.HH', 'RcmdrPlugin.KMggplot2', 'RcmdrPlugin.MA', 'RcmdrPlugin.MPAStats', 'RcmdrPlugin.NMBU', 'RcmdrPlugin.orloca', 'RcmdrPlugin.PcaRobust', 'RcmdrPlugin.RiskDemo', 'RcmdrPlugin.RMTCJags', 'RcmdrPlugin.ROC', 'RcmdrPlugin.sos', 'RcmdrPlugin.survival', 'RcmdrPlugin.TeachingDemos', 'RcmdrPlugin.TeachStat', 'RcmdrPlugin.temis', 'RcmdrPlugin.UCA', 'RcmdrPlugin.WorldFlora', 'Rcplex', 'RcppCWB', 'RcppMeCab', 'RDM', 'rdwplus', 'ReadDIM', 'readNSx', 'rechaRge', 'Recocrop', 'recolorize', 'red', 'redist', 'redistverse', 'redland', 'redlistr', 'redux', 'ref.ICAR', 'refreg', 'Relectoral', 'remote', 'reproj', 'rerddapXtracto', 'restoptr', 'resultant', 'RevGadgets', 'ReviewR', 'revtools', 'rflexscan', 'rflsgen', 'RFOC', 'rFUSION', 'RGCxGC', 'RGENERATEPREC', 'rgeopat2', 'rgl2gltf', 'rglplus', 'rgplates', 'RIdeogram', 'Riemann', 'RInno', 'RiskMap', 'riverdist', 'rivnet', 'rjade', 'RKHSMetaMod', 'rKIN', 'RKorAPClient', 'rleafmap', 'rless', 'rLFT', 'Rlibeemd', 'Rlibkdv', 'rliger', 'rmacrostrat', 'rmapshaper', 'rmapzen', 'rmarchingcubes', 'RMariaDB', 'RmecabKo', 'RMOPI', 'Rmpfr', 'Rmpi', 'Rmst', 'RMySQL', 'rnaturalearth', 'rnmamod', 'RockFab', 'RODBCDBI', 'ROI.models.miplib', 'ROI.plugin.clarabel', 'ROI.plugin.cplex', 'ROI.plugin.glpk', 'ROI.plugin.qpoases', 'ROI.plugin.symphony', 'ROMDB', 'ROracle', 'rPAex', 'Rpdb', 'RPhosFate', 'RPointCloud', 'Rpolyhedra', 'RProtoBuf', 'rqti', 'Rquake', 'RQuantLib', 'rsat', 'rsi', 'rsocialwatcher', 'RSP', 'rSPARCS', 'Rsymphony', 'RTLknitr', 'rTLsDeep', 'rWCVP', 'RWinEdt', 'SANple', 'sarsop', 'Scalelink', 'scoredec', 'scplot', 'secsse', 'SEMdeep', 'SEMgraph', 'sf', 'sfarrow', 'sfcentral', 'sfdep', 'sfhotspot', 'sftime', 'sftrack', 'shapes', 'ShapeSelectForest', 'ShellChron', 'shiny.benchmark', 'shinyMixR', 'shinyRGL', 'shinytest', 'shinytest2', 'shrinkDSM', 'shrinkTVPVAR', 'SIGN', 'siland', 'SimInf', 'simplePHENOTYPES', 'simplexreg', 'SiMRiv', 'SimSurvey', 'simulariatools', 'sirad', 'sits', 'SLBDD', 'slideview', 'smartmap', 'smcryptoR', 'smdi', 'SMDIC', 'smile', 'SMITIDstruct', 'smoothAPC', 'smosr', 'snplinkage', 'sociome', 'SoilSaltIndex', 'spacejamr', 'SpaDES', 'SpaDES.core', 'SpaDES.tools', 'spANOVA', 'sparrpowR', 'sparseCov', 'SPARSEMODr', 'sparsevb', 'SpatGC', 'SpatGRID', 'SpatialDDLS', 'spatialEco', 'SpatialEpi', 'SpatialfdaR', 'SpatialGraph', 'SpatialKDE', 'SpatialPosition', 'SpatialRegimes', 'SpaTopic', 'spatsurv', 'spbal', 'spectralR', 'Spectran', 'spectrino', 'Spectrum', 'SQL', 'SRTsim', 'stratastats', 'StratifiedRF', 'stRoke', 'sugarbag', 'SUNGEO', 'surveyexplorer', 'surveyvoi', 'swaprinc', 'SymTS', 'tableschema.r', 'taskscheduleR', 'tfrmt', 'tfrmtbuilder', 'tidyCDISC', 'tidycmprsk', 'TidyConsultant', 'tiledb', 'tinyscholar', 'TKCat', 'tkImgR', 'tkRplotR', 'TML', 'trackeRapp', 'TSCI', 'twdtw', 'tweetcheck', 'uaparserjs', 'UnalR', 'V8', 'valhallr', 'valuemap', 'vol2birdR', 'vtree', 'washr', 'webglobe', 'xRing'); pkgs = setdiff(pkgs, c('RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd', 'rFUSION', 'MediaNews', 'DoE.base', 'DoE.wrapper', 'FrF2', 'FrF2.catlg128', 'eha', 'gRain', 'gRbase', 'doBy', 'IDPmisc', 'RVAideMemoire', 'pbkrtest', 'seewave', 'compareGroups', 'pls', 'SNPassoc', 'spdep', 'surveillance')); progressr::handlers('cli'); progressr::handlers(global = TRUE); foo = lapply(pkgs, function(x) bincraftR::build_binary_package(x, debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = 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: 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::int_type' {aka 'int'} to 'char' [-Wnarrowing] -> https://github.com/GAMS-dev/transfer-r/issues/2 + # filters: -> 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, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = "amd64"))' + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 1000m + limits: + memory: 20Gi + cpu: 2000m + nodeSelector: + kubernetes.io/arch: amd64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' + + - name: 'ntfy' + image: binwiederhier/ntfy:v2.11.0 + when: + - status: [failure] + environment: + NTFY_TOKEN: + from_secret: ntfy_token + commands: | + BUILD_INDEX=$(cat build_index.txt) + ntfy publish --tags=no_entry_sign --token $NTFY_TOKEN -t "Run '${CI_REPO}' failed at $BUILD_INDEX" --click="${CI_PIPELINE_URL}" --actions="view, Open build, ${CI_PIPELINE_URL}, clear=true;" ntfy.devxy.io/ci-builds Workflow: ${CI_WORKFLOW_NAME} Commit message: ${CI_COMMIT_MESSAGE} Commit Author: ${CI_COMMIT_AUTHOR} diff --git a/.crow/build-alpine-320-arm64-single.yaml b/.crow/build-alpine-320-arm64-single.yaml new file mode 100644 index 0000000..ad8b16f --- /dev/null +++ b/.crow/build-alpine-320-arm64-single.yaml @@ -0,0 +1,105 @@ +when: + - event: manual + evaluate: 'build == "all"' + # - event: manual + # evaluate: 'build == "alpine-320-arm64"' + - event: manual + evaluate: 'build == "alpine-320-arm64-0"' + - event: manual + evaluate: 'build == "all-arm64"' + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/arm64-binaries-r-alpine-320 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: alpine-320 + ARCH: arm64 + NCPUS: 2 + STRATEGY: sequential + # volumes: + # - arm64-binaries-r-dep-cache-alpine-320:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - R -q -e 'packageVersion("bincraftR")' + - mkdir -p /mnt/cache/pkgcache /mnt/cache/R-pkgs /mnt/cache/ccache /mnt/cache/packages + # Windows-only: 'RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd', 'rFUSION', 'MediaNews' + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL); pkgs = c('ieegio', 'integr', 'interpolation', 'intkrige', 'intRinsic', 'intSDM', 'IOLS', 'ipanema', 'ipdw', 'ipsecr', 'IRkernel', 'irtawsi', 'isocat', 'IsoriX', 'ISRaD', 'itcSegment', 'itsdm', 'ivdoctr', 'janus', 'jdenticon', 'JFM', 'jrSiCKLSNMF', 'kazaam', 'KeyboardSimulator', 'lgpr', 'MDSGUI', 'medfateland', 'MediaNews', 'Mega2R', 'MetabolomicsBasics', 'minired', 'moc.gapbk', 'ModTools', 'MolgenisArmadillo', 'mpae', 'MPCR', 'noisemodel', 'ODT', 'omsvg', 'onsvtables', 'OpenCL', 'openrouteservice', 'opinAr', 'overturemapsr', 'palaeoverse', 'parqr', 'parquetize', 'pastclim', 'pbdMPI', 'pbdSLAP', 'pcaL1', 'PCRA', 'pgenlibr', 'pheble', 'phonics', 'plot3Drgl', 'plotdap', 'plothelper', 'plumberDeploy', 'plusCode2', 'pmclust', 'pMEM', 'Poly4AT', 'polyhedralCubature', 'polymapR', 'pooledpeaks', 'PoPdesign', 'PopGenReport', 'populR', 'portfolio.optimization', 'postdoc', 'potential', 'povmap', 'poweRbal', 'PoweREST', 'PPbigdata', 'ppcSpatial', 'ppgm', 'PPMiss', 'PPRL', 'ppsbm', 'praatpicture', 'practicalSigni', 'predhy.GUI', 'predict3d', 'predicts', 'predtoolsTS', 'presenter', 'pressuRe', 'PrevMap', 'prevR', 'prior3D', 'priorCON', 'prioritizr', 'prism', 'PRISMA2020', 'prismjs', 'prisonbrief', 'profExtrema', 'proffer', 'ProfoundData', 'proj4', 'protolite', 'prqlr', 'prWarp', 'psBayesborrow', 'psgp', 'psSubpathway', 'qad', 'QF', 'qlcVisualize', 'qmd', 'QRAGadget', 'qrencoder', 'qrlabelr', 'QRM', 'qspray', 'qsub', 'qtlc', 'quadmesh', 'quadtree', 'qualmap', 'R2BayesX', 'R2PPT', 'R2wd', 'r4lineups', 'Racmacs', 'RAINBOWR', 'randomcoloR', 'RandomWalker', 'Rata', 'Rblpapi', 'rblt', 'rccola', 'RcmdrMisc', 'RcmdrPlugin.aRnova', 'RcmdrPlugin.BiclustGUI', 'RcmdrPlugin.BWS1', 'RcmdrPlugin.BWS2', 'RcmdrPlugin.BWS3', 'RcmdrPlugin.cpd', 'RcmdrPlugin.DCCV', 'RcmdrPlugin.DCE', 'RcmdrPlugin.depthTools', 'RcmdrPlugin.DoE', 'RcmdrPlugin.EACSPIR', 'RcmdrPlugin.EBM', 'RcmdrPlugin.EcoVirtual', 'RcmdrPlugin.Export', 'RcmdrPlugin.EZR', 'RcmdrPlugin.FactoMineR', 'RcmdrPlugin.GWRM', 'RcmdrPlugin.HH', 'RcmdrPlugin.KMggplot2', 'RcmdrPlugin.MA', 'RcmdrPlugin.MPAStats', 'RcmdrPlugin.NMBU', 'RcmdrPlugin.orloca', 'RcmdrPlugin.PcaRobust', 'RcmdrPlugin.RiskDemo', 'RcmdrPlugin.RMTCJags', 'RcmdrPlugin.ROC', 'RcmdrPlugin.sos', 'RcmdrPlugin.survival', 'RcmdrPlugin.TeachingDemos', 'RcmdrPlugin.TeachStat', 'RcmdrPlugin.temis', 'RcmdrPlugin.UCA', 'RcmdrPlugin.WorldFlora', 'Rcplex', 'RcppCWB', 'RcppMeCab', 'RDM', 'rdwplus', 'ReadDIM', 'readNSx', 'rechaRge', 'Recocrop', 'recolorize', 'red', 'redist', 'redistverse', 'redland', 'redlistr', 'redux', 'ref.ICAR', 'refreg', 'Relectoral', 'remote', 'reproj', 'rerddapXtracto', 'restoptr', 'resultant', 'RevGadgets', 'ReviewR', 'revtools', 'rflexscan', 'rflsgen', 'RFOC', 'rFUSION', 'RGCxGC', 'RGENERATEPREC', 'rgeopat2', 'rgl2gltf', 'rglplus', 'rgplates', 'RIdeogram', 'Riemann', 'RInno', 'RiskMap', 'riverdist', 'rivnet', 'rjade', 'RKHSMetaMod', 'rKIN', 'RKorAPClient', 'rleafmap', 'rless', 'rLFT', 'Rlibeemd', 'Rlibkdv', 'rliger', 'rmacrostrat', 'rmapshaper', 'rmapzen', 'rmarchingcubes', 'RMariaDB', 'RmecabKo', 'RMOPI', 'Rmpfr', 'Rmpi', 'Rmst', 'RMySQL', 'rnaturalearth', 'rnmamod', 'RockFab', 'RODBCDBI', 'ROI.models.miplib', 'ROI.plugin.clarabel', 'ROI.plugin.cplex', 'ROI.plugin.glpk', 'ROI.plugin.qpoases', 'ROI.plugin.symphony', 'ROMDB', 'ROracle', 'rPAex', 'Rpdb', 'RPhosFate', 'RPointCloud', 'Rpolyhedra', 'RProtoBuf', 'rqti', 'Rquake', 'RQuantLib', 'rsat', 'rsi', 'rsocialwatcher', 'RSP', 'rSPARCS', 'Rsymphony', 'RTLknitr', 'rTLsDeep', 'rWCVP', 'RWinEdt', 'SANple', 'sarsop', 'Scalelink', 'scoredec', 'scplot', 'secsse', 'SEMdeep', 'SEMgraph', 'sf', 'sfarrow', 'sfcentral', 'sfdep', 'sfhotspot', 'sftime', 'sftrack', 'shapes', 'ShapeSelectForest', 'ShellChron', 'shiny.benchmark', 'shinyMixR', 'shinyRGL', 'shinytest', 'shinytest2', 'shrinkDSM', 'shrinkTVPVAR', 'SIGN', 'siland', 'SimInf', 'simplePHENOTYPES', 'simplexreg', 'SiMRiv', 'SimSurvey', 'simulariatools', 'sirad', 'sits', 'SLBDD', 'slideview', 'smartmap', 'smcryptoR', 'smdi', 'SMDIC', 'smile', 'SMITIDstruct', 'smoothAPC', 'smosr', 'snplinkage', 'sociome', 'SoilSaltIndex', 'spacejamr', 'SpaDES', 'SpaDES.core', 'SpaDES.tools', 'spANOVA', 'sparrpowR', 'sparseCov', 'SPARSEMODr', 'sparsevb', 'SpatGC', 'SpatGRID', 'SpatialDDLS', 'spatialEco', 'SpatialEpi', 'SpatialfdaR', 'SpatialGraph', 'SpatialKDE', 'SpatialPosition', 'SpatialRegimes', 'SpaTopic', 'spatsurv', 'spbal', 'spectralR', 'Spectran', 'spectrino', 'Spectrum', 'SQL', 'SRTsim', 'stratastats', 'StratifiedRF', 'stRoke', 'sugarbag', 'SUNGEO', 'surveyexplorer', 'surveyvoi', 'swaprinc', 'SymTS', 'tableschema.r', 'taskscheduleR', 'tfrmt', 'tfrmtbuilder', 'tidyCDISC', 'tidycmprsk', 'TidyConsultant', 'tiledb', 'tinyscholar', 'TKCat', 'tkImgR', 'tkRplotR', 'TML', 'trackeRapp', 'TSCI', 'twdtw', 'tweetcheck', 'uaparserjs', 'UnalR', 'V8', 'valhallr', 'valuemap', 'vol2birdR', 'vtree', 'washr', 'webglobe', 'xRing'); pkgs = setdiff(pkgs, c('RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd', 'rFUSION', 'MediaNews', 'DoE.base', 'DoE.wrapper', 'FrF2', 'FrF2.catlg128', 'eha', 'gRain', 'gRbase', 'doBy', 'IDPmisc', 'RVAideMemoire', 'pbkrtest', 'seewave', 'compareGroups', 'pls', 'SNPassoc', 'spdep', 'surveillance')); progressr::handlers('cli'); progressr::handlers(global = TRUE); foo = lapply(pkgs, function(x) bincraftR::build_binary_package(x, debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = 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: 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::int_type' {aka 'int'} to 'char' [-Wnarrowing] -> https://github.com/GAMS-dev/transfer-r/issues/2 + # filters: -> 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", "strearmAG", "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, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = "arm64"))' + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 1000m + limits: + memory: 20Gi + cpu: 2000m + nodeSelector: + kubernetes.io/arch: arm64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' + + - name: 'ntfy' + image: binwiederhier/ntfy:v2.11.0 + when: + - status: [failure] + environment: + NTFY_TOKEN: + from_secret: ntfy_token + commands: | + BUILD_INDEX=$(cat build_index.txt) + ntfy publish --tags=no_entry_sign --token $NTFY_TOKEN -t "Run '${CI_REPO}' failed at $BUILD_INDEX" --click="${CI_PIPELINE_URL}" --actions="view, Open build, ${CI_PIPELINE_URL}, clear=true;" ntfy.devxy.io/ci-builds Workflow: ${CI_WORKFLOW_NAME} Commit message: ${CI_COMMIT_MESSAGE} Commit Author: ${CI_COMMIT_AUTHOR} diff --git a/.crow/build-redhat-8-amd64-single.yaml b/.crow/build-redhat-8-amd64-single.yaml new file mode 100644 index 0000000..96631bf --- /dev/null +++ b/.crow/build-redhat-8-amd64-single.yaml @@ -0,0 +1,61 @@ +when: + - event: manual + evaluate: 'task == "build-single-rhel8-amd64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/amd64-binaries-r-redhat-8 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: redhat-8 + ARCH: amd64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - amd64-binaries-r-dep-cache-redhat-8:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/rhel8/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'redhat-8')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: amd64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' diff --git a/.crow/build-redhat-8-arm64-single.yaml b/.crow/build-redhat-8-arm64-single.yaml new file mode 100644 index 0000000..7f663d9 --- /dev/null +++ b/.crow/build-redhat-8-arm64-single.yaml @@ -0,0 +1,61 @@ +when: + - event: manual + evaluate: 'task == "build-single-rhel8-arm64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/arm64-binaries-r-redhat-8 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: redhat-8 + ARCH: arm64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - arm64-binaries-r-dep-cache-redhat-8:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/rhel8/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'redhat-8')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: arm64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' diff --git a/.crow/build-redhat-9-arm64-single.yaml b/.crow/build-redhat-9-arm64-single.yaml new file mode 100644 index 0000000..87bd045 --- /dev/null +++ b/.crow/build-redhat-9-arm64-single.yaml @@ -0,0 +1,62 @@ +when: + - event: manual + evaluate: 'task == "build-single-rhel9-arm64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/arm64-binaries-r-redhat-9 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: redhat-9 + ARCH: arm64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - arm64-binaries-r-dep-cache-redhat-9:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + # Windows-only: 'RInno', 'KeyboardSimulator', 'R2PPT', 'RWinEdt', 'blatr', 'excel.link', 'spectrino', 'taskscheduleR', 'MDSGUI', 'BiplotGUI', 'R2wd', 'rFUSION', 'MediaNews' + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/rhel9/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'redhat-9')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: arm64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' diff --git a/.crow/build-ubuntu-2204-amd64-single.yaml b/.crow/build-ubuntu-2204-amd64-single.yaml new file mode 100644 index 0000000..be6c1ac --- /dev/null +++ b/.crow/build-ubuntu-2204-amd64-single.yaml @@ -0,0 +1,61 @@ +when: + - event: manual + evaluate: 'task == "build-single-jammy-amd64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/amd64-binaries-r-ubuntu-2204 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: ubuntu-2204 + ARCH: amd64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - amd64-binaries-r-dep-cache-ubuntu-2204:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/jammy/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'ubuntu-2204')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: amd64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' diff --git a/.crow/build-ubuntu-2204-arm64-single.yaml b/.crow/build-ubuntu-2204-arm64-single.yaml new file mode 100644 index 0000000..bafd795 --- /dev/null +++ b/.crow/build-ubuntu-2204-arm64-single.yaml @@ -0,0 +1,61 @@ +when: + - event: manual + evaluate: 'task == "build-single-jammy-arm64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/arm64-binaries-r-ubuntu-2204 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: ubuntu-2204 + ARCH: arm64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - arm64-binaries-r-dep-cache-ubuntu-2204:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/jammy/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'ubuntu-2204')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: arm64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' diff --git a/.crow/build-ubuntu-2404-amd64-single.yaml b/.crow/build-ubuntu-2404-amd64-single.yaml new file mode 100644 index 0000000..7493c1b --- /dev/null +++ b/.crow/build-ubuntu-2404-amd64-single.yaml @@ -0,0 +1,61 @@ +when: + - event: manual + evaluate: 'task == "build-single-noble-amd64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/amd64-binaries-r-ubuntu-2404 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: ubuntu-2404 + ARCH: amd64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - amd64-binaries-r-dep-cache-ubuntu-2404:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/noble/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'ubuntu-2404')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: amd64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule' diff --git a/.crow/build-ubuntu-2404-arm64-single.yaml b/.crow/build-ubuntu-2404-arm64-single.yaml new file mode 100644 index 0000000..b0658cd --- /dev/null +++ b/.crow/build-ubuntu-2404-arm64-single.yaml @@ -0,0 +1,61 @@ +when: + - event: manual + evaluate: 'task == "build-single-noble-arm64"' + # PACKAGE: + # TAG: # set NULL to build all versions + +skip_clone: true + +steps: + - name: 'Build binaries' + image: docker.io/devxygmbh/arm64-binaries-r-ubuntu-2404 + pull: true + environment: + RED_HAT_DEV_PW: + from_secret: RED_HAT_DEV_PW + HETZNER_S3_ACCESS_KEY_K3S: + from_secret: HETZNER_S3_ACCESS_KEY_K3S + HETZNER_S3_SECRET_KEY_K3S: + from_secret: HETZNER_S3_SECRET_KEY_K3S + PGPASS: + from_secret: PGPASS + GIT_RO_TOKEN: + from_secret: GIT_RO_TOKEN + GITHUB_PAT: + from_secret: GITHUB_PAT + # 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 + PLATFORM: ubuntu-2404 + ARCH: arm64 + NCPUS: 4 + STRATEGY: sequential + # volumes: + # - arm64-binaries-r-dep-cache-ubuntu-2404:/mnt/cache + commands: + - git clone -q https://pat-s:$$GIT_RO_TOKEN@git.devxy.io/devxy/build-binaries.git . + - rm -rf /mnt/cache/R-pkgs/00LOCK-r-pkg-binaries /mnt/cache/R-pkgs/00LOCK-bincraftR /mnt/cache/R-pkgs/00LOCK-pak /mnt/cache/pkgcache/R/pkgcache /mnt/cache/pkgcache/R/pkgcache /mnt/cache/R-pkgs/pkgcache + - 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 + - xvfb-run R -q -e "options(crayon.enabled = TRUE, Ncpus = $NCPUS, future.globals.onReference = NULL, repos = structure(c(CRAN = 'https://cran.devxy.io/$ARCH/noble/latest'))); progressr::handlers('cli'); progressr::handlers(global = TRUE); bincraftR::build_binary_package(\"$$package\", tag = \"$$tag\", debug = FALSE, force = TRUE, s3_endpoint = 'https://fsn1.your-objectstorage.com', s3_region = 'fsn1', s3_bucket = 'devxy-r-package-binaries', s3_access_key_id = Sys.getenv('HETZNER_S3_ACCESS_KEY_K3S'), s3_secret_access_key = Sys.getenv('HETZNER_S3_SECRET_KEY_K3S'), metadata_db_host = 'r-binaries.devxy.io', metadata_db_name = 'build_metadata', metadata_db_table = 'single_builds', metadata_db_user = 'r_binaries', metadata_db_password = Sys.getenv('PGPASS'), metadata_db_sslmode = 'require', metadata_db_port = 15432, archive = TRUE, upload = TRUE, store_build_metadata = TRUE, platform = 'ubuntu-2404')" + backend_options: + kubernetes: + resources: + requests: + memory: 5Gi + cpu: 2000m + limits: + memory: 20Gi + cpu: 3000m + nodeSelector: + kubernetes.io/arch: arm64 + node.kubernetes.io/instance-type: AX42 + tolerations: + - key: 'CI' + operator: 'Equal' + value: 'true' + effect: 'NoSchedule'