# contains non-functional tests, like checks on docs # and code style name: Static Analysis on: push: branches: - master pull_request: branches: - master # automatically cancel in-progress builds if another commit is pushed concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: COMPILER: 'gcc' MAKEFLAGS: '-j4' OS_NAME: 'linux' jobs: lint: name: lint runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout repository uses: actions/checkout@v5 with: fetch-depth: 5 submodules: false - name: Setup and run tests shell: bash run: | export TASK=lint export CONDA=${HOME}/miniforge export PATH=${CONDA}/bin:$HOME/.local/bin:${PATH} $GITHUB_WORKSPACE/.ci/setup.sh || exit 1 $GITHUB_WORKSPACE/.ci/lint-all.sh || exit 1 check-docs: name: check-docs runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout repository uses: actions/checkout@v5 with: fetch-depth: 5 submodules: false - name: Setup and run tests shell: bash run: | export TASK=check-docs export CONDA=${HOME}/miniforge export PATH=${CONDA}/bin:$HOME/.local/bin:${PATH} $GITHUB_WORKSPACE/.ci/setup.sh || exit 1 $GITHUB_WORKSPACE/.ci/test-docs.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@v5 with: fetch-depth: 5 submodules: true - name: Install packages shell: bash run: | Rscript ./.ci/install-r-deps.R --build --include=roxygen2 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: [lint, check-docs, r-check-docs] steps: - name: Note that all tests succeeded uses: re-actors/alls-green@v1.2.2 with: jobs: ${{ toJSON(needs) }}