- Limit the number of used CPU cores in examples. - Add a note for the constraint. - Bring back the cleanup script.
165 lines
5.5 KiB
YAML
165 lines
5.5 KiB
YAML
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
|