name: CUDA Version on: push: branches: - master pull_request: branches: - master # Run manually by clicking a button in the UI workflow_dispatch: # automatically cancel in-progress builds if another commit is pushed concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: # yamllint disable-line rule:line-length name: ${{ matrix.task }} ${{ matrix.cuda_version }} ${{ matrix.method }} (${{ matrix.linux_version }}, ${{ matrix.compiler }}, Python ${{ matrix.python_version }}) # yamllint disable-line rule:line-length # ref: https://docs.github.com/en/actions/concepts/runners/about-larger-runners#specifications-for-gpu-larger-runners runs-on: LightGBM-GPU container: image: nvcr.io/nvidia/cuda:${{ matrix.cuda_version }}-devel-${{ matrix.linux_version }} env: CMAKE_BUILD_PARALLEL_LEVEL: 4 COMPILER: ${{ matrix.compiler }} CONDA: /tmp/miniforge DEBIAN_FRONTEND: noninteractive METHOD: ${{ matrix.method }} OS_NAME: linux PYTHON_VERSION: ${{ matrix.python_version }} TASK: ${{ matrix.task }} SKBUILD_STRICT_CONFIG: true options: --gpus all timeout-minutes: 30 strategy: fail-fast: false matrix: include: - method: wheel compiler: gcc python_version: "3.11" cuda_version: "12.8.0" linux_version: "ubuntu22.04" task: cuda - method: source compiler: gcc python_version: "3.13" cuda_version: "12.2.2" linux_version: "ubuntu22.04" task: cuda - method: pip compiler: clang python_version: "3.12" cuda_version: "11.8.0" linux_version: "ubuntu20.04" task: cuda steps: - name: Install latest git and sudo run: | apt-get update apt-get install --no-install-recommends -y \ ca-certificates \ software-properties-common add-apt-repository ppa:git-core/ppa -y apt-get update apt-get install --no-install-recommends -y \ git \ sudo - name: Checkout repository uses: actions/checkout@v5 with: fetch-depth: 5 persist-credentials: false submodules: true - name: Setup and run tests run: | export BUILD_DIRECTORY="$GITHUB_WORKSPACE" export PATH=$CONDA/bin:$PATH # check GPU usage nvidia-smi # build and test $GITHUB_WORKSPACE/.ci/setup.sh $GITHUB_WORKSPACE/.ci/test.sh all-cuda-jobs-successful: if: always() runs-on: ubuntu-latest needs: [test] steps: - name: Note that all tests succeeded uses: re-actors/alls-green@v1.2.2 with: jobs: ${{ toJSON(needs) }}