diff --git a/.github/workflows/python_package.yml b/.github/workflows/python_package.yml new file mode 100644 index 000000000000..9c2103c23444 --- /dev/null +++ b/.github/workflows/python_package.yml @@ -0,0 +1,79 @@ +name: Python-package + +on: + push: + branches: + - master + pull_request: + branches: + - master + +env: + CONDA_ENV: test-env + GITHUB_ACTIONS: 'true' + +jobs: + test: + name: ${{ matrix.task }} ${{ matrix.method }} (${{ matrix.os }}, Python ${{ matrix.python_version }}) + runs-on: ${{ matrix.os }} + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + include: + - os: macOS-latest + task: regular + python_version: 3.6 + - os: macOS-latest + task: sdist + python_version: 3.8 + - os: macOS-latest + task: bdist + python_version: 3.8 + - os: macOS-latest + task: if-else + python_version: 3.8 + - os: macOS-latest + task: mpi + method: source + python_version: 3.8 + - os: macOS-latest + task: mpi + method: pip + python_version: 3.6 + - os: macOS-latest + task: mpi + method: wheel + python_version: 3.7 + steps: + - name: Checkout repository + uses: actions/checkout@v2.3.4 + with: + fetch-depth: 5 + submodules: true + - name: Setup and run tests + shell: bash + run: | + export TASK="${{ matrix.task }}" + export METHOD="${{ matrix.method }}" + export PYTHON_VERSION="${{ matrix.python_version }}" + if [[ "${{ matrix.os }}" == "macOS-latest" ]]; then + export COMPILER="gcc" + export OS_NAME="macos" + elif [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then + export COMPILER="clang" + export OS_NAME="linux" + fi + export BUILD_DIRECTORY="$GITHUB_WORKSPACE" + export LGB_VER=$(head -n 1 VERSION.txt) + export CONDA=${HOME}/miniconda + export PATH=${CONDA}/bin:${PATH} + $GITHUB_WORKSPACE/.ci/setup.sh || exit -1 + $GITHUB_WORKSPACE/.ci/test.sh || exit -1 + all-successful: + # https://github.community/t/is-it-possible-to-require-all-github-actions-tasks-to-pass-without-enumerating-them/117957/4?u=graingert + runs-on: ubuntu-latest + needs: [test] + steps: + - name: Note that all tests succeeded + run: echo "🎉" diff --git a/.travis.yml b/.travis.yml index 82e5de10c653..05188fdb4b0e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,13 +8,13 @@ git: os: - linux - - osx dist: focal -osx_image: xcode12.2 env: global: # default values + - COMPILER=clang - PYTHON_VERSION=3.8 + - OS_NAME=linux matrix: - TASK=regular PYTHON_VERSION=3.6 - TASK=sdist @@ -27,26 +27,10 @@ env: - TASK=gpu METHOD=pip PYTHON_VERSION=3.6 - TASK=gpu METHOD=wheel PYTHON_VERSION=3.7 -matrix: - exclude: - - os: osx - env: TASK=gpu METHOD=source - - os: osx - env: TASK=gpu METHOD=pip PYTHON_VERSION=3.6 - - os: osx - env: TASK=gpu METHOD=wheel PYTHON_VERSION=3.7 - before_install: - test -n $CC && unset CC - test -n $CXX && unset CXX - export BUILD_DIRECTORY="$TRAVIS_BUILD_DIR" - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then - export OS_NAME="macos"; - export COMPILER="gcc"; - else - export OS_NAME="linux"; - export COMPILER="clang"; - fi - export CONDA="$HOME/miniconda" - export PATH="$CONDA/bin:$PATH" - export CONDA_ENV="test-env" diff --git a/README.md b/README.md index 293dd32e2215..de27a618896a 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ Light Gradient Boosting Machine =============================== +[![Python-package GitHub Actions Build Status](https://github.com/microsoft/LightGBM/workflows/Python-package/badge.svg?branch=master)](https://github.com/microsoft/LightGBM/actions) [![R-package GitHub Actions Build Status](https://github.com/microsoft/LightGBM/workflows/R-package/badge.svg?branch=master)](https://github.com/microsoft/LightGBM/actions) [![Static Analysis GitHub Actions Build Status](https://github.com/microsoft/LightGBM/workflows/Static%20Analysis/badge.svg?branch=master)](https://github.com/microsoft/LightGBM/actions) [![Azure Pipelines Build Status](https://lightgbm-ci.visualstudio.com/lightgbm-ci/_apis/build/status/Microsoft.LightGBM?branchName=master)](https://lightgbm-ci.visualstudio.com/lightgbm-ci/_build/latest?definitionId=1)