# contains non-functional tests, like checks on docs # and code style name: Static Analysis on: push: branches: - master pull_request: branches: - master - release/* env: COMPILER: 'gcc' CONDA_ENV: test-env GITHUB_ACTIONS: 'true' OS_NAME: 'linux' PYTHON_VERSION: '3.10' 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-22.04 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/alls-green@v1.2.2 with: jobs: ${{ toJSON(needs) }}