[ci] ensure correct R version is used on GitHub Actions (fixes #5640) #6510
Workflow file for this run
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
# contains non-functional tests, like checks on docs | |
# and code style | |
name: Static Analysis | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
- release/* | |
# automatically cancel in-progress builds if another commit is pushed | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
COMPILER: 'gcc' | |
CONDA_ENV: test-env | |
GITHUB_ACTIONS: 'true' | |
OS_NAME: 'linux' | |
PYTHON_VERSION: '3.11' | |
jobs: | |
test: | |
name: ${{ matrix.task }} | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- task: lint | |
- task: check-docs | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 5 | |
submodules: false | |
- name: Setup and run tests | |
shell: bash | |
run: | | |
export TASK="${{ matrix.task }}" | |
export BUILD_DIRECTORY="$GITHUB_WORKSPACE" | |
export CONDA=${HOME}/miniforge | |
export PATH=${CONDA}/bin:$HOME/.local/bin:${PATH} | |
$GITHUB_WORKSPACE/.ci/setup.sh || exit -1 | |
$GITHUB_WORKSPACE/.ci/test.sh || exit -1 | |
r-check-docs: | |
name: r-package-check-docs | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
container: rocker/verse | |
steps: | |
- name: Trust git cloning LightGBM | |
run: | | |
git config --global --add safe.directory "${GITHUB_WORKSPACE}" | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 5 | |
submodules: true | |
- name: Install packages | |
shell: bash | |
run: | | |
Rscript -e "install.packages(c('R6', 'data.table', 'jsonlite', 'knitr', 'Matrix', 'RhpcBLASctl', 'rmarkdown', 'roxygen2', 'testthat'), repos = 'https://cran.rstudio.com', Ncpus = parallel::detectCores())" | |
sh build-cran-package.sh || exit -1 | |
R CMD INSTALL --with-keep.source lightgbm_*.tar.gz || exit -1 | |
- name: Test documentation | |
shell: bash --noprofile --norc {0} | |
run: | | |
Rscript --vanilla -e "roxygen2::roxygenize('R-package/', load = 'installed')" || exit -1 | |
num_doc_files_changed=$( | |
git diff --name-only | grep --count -E "\.Rd|NAMESPACE" | |
) | |
if [[ ${num_doc_files_changed} -gt 0 ]]; then | |
echo "Some R documentation files have changed. Please re-generate them and commit those changes." | |
echo "" | |
echo " sh build-cran-package.sh" | |
echo " R CMD INSTALL --with-keep.source lightgbm_*.tar.gz" | |
echo " Rscript -e \"roxygen2::roxygenize('R-package/', load = 'installed')\"" | |
echo "" | |
exit -1 | |
fi | |
all-static-analysis-jobs-successful: | |
if: always() | |
runs-on: ubuntu-latest | |
needs: [test, r-check-docs] | |
steps: | |
- name: Note that all tests succeeded | |
uses: re-actors/[email protected] | |
with: | |
jobs: ${{ toJSON(needs) }} |