.ci/README.md

data.table continuous integration and deployment

On each Pull Request opened in GitHub we run Travis CI and Appveyor to provide prompt feedback about the status of PR. Our main CI pipeline runs on GitLab CI. GitLab repository automatically mirrors our GitHub repository and runs pipeline on master branch. It tests more environments and different configurations. It publish variety of artifacts.

Environments

GitLab CI

Test jobs: - test-rel-lin - r-release on Linux, most comprehensive test environment, -O3 -flto -fno-common -Wunused-result, extra check for no compilation warnings, includes testing with other packages - test-rel-cran-lin - --as-cran on Linux, -g0, extra check for final status of R CMD check where we allow one NOTE (size of tarball). - test-dev-cran-lin - r-devel and --as-cran on Linux, --with-recommended-packages --enable-strict-barrier --disable-long-double, tests for compilation warnings in pkg install and new NOTEs/Warnings in pkg check, and because it is R-devel it is marked as allow_failure - test-rel-vanilla-lin - r-release on Linux, no suggested deps, no OpenMP, -O0, tracks memory usage during tests - test-310-cran-lin - R 3.1.0 on Linux - test-344-cran-lin - R 3.4.4 on Linux - test-350-cran-lin - R 3.5.0 on Linux, no r-recommended - test-rel-win - r-release on Windows - test-dev-win - r-devel on Windows - test-old-win - r-oldrel on Windows - test-rel-osx - MacOSX build not yet deployed, see #3326 for status

Artifacts: - homepage - made with pkgdown - html manual - pdf manual - html vignettes - R packages repository for data.table and all Suggests dependencies, url: https://Rdatatable.gitlab.io/data.table - sources - Windows binaries for r-release, r-devel and r-oldrel - CRAN-like homepage - CRAN-like checks results - note that all artifacts, including check results page, are being published only when all test jobs successfully pass, thus one will not see an ERROR status there (unless error happened on a job marked as allow_failure). - docker images - copy/paste-able docker pull commands can be found at the bottom of our CRAN-like homepage

Travis CI

Test jobs: - r-release on Linux, includes code coverage check - (might be disabled) r-release on OSX

Artifacts: - R packages repository having data.table sources only, url: https://Rdatatable.github.io/data.table - code coverage stats pushed to codecov.io/gh/Rdatatable/data.table

Appveyor

Test jobs: - Windows r-release - (might be disabled) Windows r-devel

Artifacts: - Windows r-release binaries accessed only via web UI

Tools

ci.R

Base R implemented helper script, originally proposed to R, that ease the process of extracting dependency information from description files, also to mirror packages and their recursive dependencies from CRAN to local CRAN-like directory. It is widely used in our GitLab CI pipeline.

publish.R

Base R implemented helper script to orchestrate generation of most artifacts. It is being used only in integration stage in GitLab CI pipeline.

Dockerfile.in

Template file to produce Dockerfile for, as of now, three docker images. Docker images are being built and published in deploy stage in GitLab CI pipeline. - r-base-dev using r-release: publish docker image of data.table on R-release - r-builder using r-release: publish on R-release and OS dependencies for building Rmarkdown vignettes - r-devel: publish docker image of data.table on R-devel built with --with-recommended-packages --enable-strict-barrier --disable-long-double

deploy.sh

Script used on Travis CI to publish CRAN-like repository of data.table sources. It publishes to gh-pages branch in GitHub repository. It depends on a token, which is provided based on secure environment variable in .travis.yml. It has been generated by @jangorecki.



sultanabubaker/SAST-r-project documentation built on April 10, 2022, 12:59 a.m.