Updating readme, cleaning up build #385
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: XGBoost-R-Tests | |
on: [push, pull_request] | |
env: | |
R_PACKAGES: c('XML', 'data.table', 'ggplot2', 'DiagrammeR', 'Ckmeans.1d.dp', 'vcd', 'testthat', 'lintr', 'knitr', 'rmarkdown', 'e1071', 'cplm', 'devtools', 'float', 'titanic') | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: 2.5 | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
lintr: | |
runs-on: ${{ matrix.config.os }} | |
name: Run R linters on OS ${{ matrix.config.os }}, R ${{ matrix.config.r }}, Compiler ${{ matrix.config.compiler }}, Build ${{ matrix.config.build }} | |
strategy: | |
matrix: | |
config: | |
- {os: ubuntu-latest, r: 'release'} | |
env: | |
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
RSPM: ${{ matrix.config.rspm }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- name: Cache R packages | |
uses: actions/cache@v2 | |
with: | |
path: ${{ env.R_LIBS_USER }} | |
key: ${{ runner.os }}-r-${{ matrix.config.r }}-5-${{ hashFiles('R-package/DESCRIPTION') }} | |
restore-keys: ${{ runner.os }}-r-${{ matrix.config.r }}-5-${{ hashFiles('R-package/DESCRIPTION') }} | |
- name: Install dependencies | |
shell: Rscript {0} | |
run: | | |
install.packages(${{ env.R_PACKAGES }}, | |
repos = 'http://cloud.r-project.org', | |
dependencies = c('Depends', 'Imports', 'LinkingTo')) | |
- name: Install igraph on Windows | |
shell: Rscript {0} | |
if: matrix.config.os == 'windows-latest' | |
run: | | |
install.packages('igraph', type='binary') | |
- name: Run lintr | |
run: | | |
cd R-package | |
R CMD INSTALL . | |
# Disable lintr errors for now: https://github.com/dmlc/xgboost/issues/8012 | |
Rscript tests/helper_scripts/run_lint.R || true | |
test-with-R: | |
runs-on: ${{ matrix.config.os }} | |
name: Test R on OS ${{ matrix.config.os }}, R ${{ matrix.config.r }}, Compiler ${{ matrix.config.compiler }}, Build ${{ matrix.config.build }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, r: 'release', compiler: 'mingw', build: 'autotools'} | |
- {os: windows-latest, r: 'release', compiler: 'msvc', build: 'cmake'} | |
- {os: windows-latest, r: 'release', compiler: 'mingw', build: 'cmake'} | |
env: | |
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: 2.5 | |
RSPM: ${{ matrix.config.rspm }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- name: Cache R packages | |
uses: actions/cache@v2 | |
with: | |
path: ${{ env.R_LIBS_USER }} | |
key: ${{ runner.os }}-r-${{ matrix.config.r }}-5-${{ hashFiles('R-package/DESCRIPTION') }} | |
restore-keys: ${{ runner.os }}-r-${{ matrix.config.r }}-5-${{ hashFiles('R-package/DESCRIPTION') }} | |
- name: Install dependencies | |
shell: Rscript {0} | |
if: matrix.config.os != 'windows-latest' | |
run: | | |
install.packages(${{ env.R_PACKAGES }}, | |
repos = 'http://cloud.r-project.org', | |
dependencies = c('Depends', 'Imports', 'LinkingTo')) | |
- name: Install binary dependencies | |
shell: Rscript {0} | |
if: matrix.config.os == 'windows-latest' | |
run: | | |
install.packages(${{ env.R_PACKAGES }}, | |
type = 'binary', | |
repos = 'http://cloud.r-project.org', | |
dependencies = c('Depends', 'Imports', 'LinkingTo')) | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: "3.8" | |
architecture: 'x64' | |
- name: Test R | |
run: | | |
python tests/ci_build/test_r_package.py --compiler='${{ matrix.config.compiler }}' --build-tool='${{ matrix.config.build }}' | |
test-R-CRAN: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {r: 'release'} | |
env: | |
_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: 2.5 | |
MAKE: "make -j$(nproc)" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- uses: r-lib/actions/setup-tinytex@v2 | |
- name: Install system packages | |
run: | | |
sudo apt-get update && sudo apt-get install libcurl4-openssl-dev libssl-dev libssh2-1-dev libgit2-dev pandoc pandoc-citeproc libglpk-dev | |
- name: Cache R packages | |
uses: actions/cache@v2 | |
with: | |
path: ${{ env.R_LIBS_USER }} | |
key: ${{ runner.os }}-r-${{ matrix.config.r }}-5-${{ hashFiles('R-package/DESCRIPTION') }} | |
restore-keys: ${{ runner.os }}-r-${{ matrix.config.r }}-5-${{ hashFiles('R-package/DESCRIPTION') }} | |
- name: Install dependencies | |
shell: Rscript {0} | |
run: | | |
install.packages(${{ env.R_PACKAGES }}, | |
repos = 'http://cloud.r-project.org', | |
dependencies = c('Depends', 'Imports', 'LinkingTo')) | |
install.packages('igraph', repos = 'http://cloud.r-project.org', dependencies = c('Depends', 'Imports', 'LinkingTo')) | |
- name: Check R Package | |
run: | | |
# Print stacktrace upon success of failure | |
make Rcheck || tests/ci_build/print_r_stacktrace.sh fail | |
tests/ci_build/print_r_stacktrace.sh success |