126 lines
4.0 KiB
YAML
126 lines
4.0 KiB
YAML
name: XGBoost-Python-Tests
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
python-sdist-test:
|
|
runs-on: ${{ matrix.os }}
|
|
name: Test installing XGBoost Python source package on ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-10.15, windows-latest]
|
|
python-version: ["3.8"]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: 'true'
|
|
- name: Install osx system dependencies
|
|
if: matrix.os == 'macos-10.15'
|
|
run: |
|
|
# Use libomp 11.1.0: https://github.com/dmlc/xgboost/issues/7039
|
|
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/679923b4eb48a8dc7ecc1f05d06063cd79b3fc00/Formula/libomp.rb -O $(find $(brew --repository) -name libomp.rb)
|
|
brew install ninja libomp
|
|
brew pin libomp
|
|
- name: Install Ubuntu system dependencies
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: |
|
|
sudo apt-get install -y --no-install-recommends ninja-build
|
|
- uses: conda-incubator/setup-miniconda@v2
|
|
with:
|
|
auto-update-conda: true
|
|
python-version: ${{ matrix.python-version }}
|
|
activate-environment: test
|
|
- name: Display Conda env
|
|
shell: bash -l {0}
|
|
run: |
|
|
conda info
|
|
conda list
|
|
- name: Build and install XGBoost
|
|
shell: bash -l {0}
|
|
run: |
|
|
cd python-package
|
|
python --version
|
|
python setup.py sdist
|
|
pip install -v ./dist/xgboost-*.tar.gz
|
|
cd ..
|
|
python -c 'import xgboost'
|
|
|
|
python-tests:
|
|
name: Test XGBoost Python package on ${{ matrix.config.os }}
|
|
runs-on: ${{ matrix.config.os }}
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- {os: windows-2016, python-version: '3.8'}
|
|
- {os: macos-10.15, python-version "3.8" }
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: 'true'
|
|
|
|
- uses: conda-incubator/setup-miniconda@v2
|
|
with:
|
|
auto-update-conda: true
|
|
python-version: ${{ matrix.config.python-version }}
|
|
activate-environment: win64_test
|
|
environment-file: tests/ci_build/conda_env/win64_cpu_test.yml
|
|
|
|
- name: Display Conda env
|
|
shell: bash -l {0}
|
|
run: |
|
|
conda info
|
|
conda list
|
|
|
|
- name: Build XGBoost on Windows
|
|
shell: bash -l {0}
|
|
if: matrix.config.os == 'windows-2016'
|
|
run: |
|
|
mkdir build_msvc
|
|
cd build_msvc
|
|
cmake .. -G"Visual Studio 15 2017" -DCMAKE_CONFIGURATION_TYPES="Release" -A x64 -DGOOGLE_TEST=ON -DUSE_DMLC_GTEST=ON
|
|
cmake --build . --config Release --parallel $(nproc)
|
|
|
|
- name: Build XGBoost on macos
|
|
if: matrix.config.os == 'macos-10.15'
|
|
run: |
|
|
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/679923b4eb48a8dc7ecc1f05d06063cd79b3fc00/Formula/libomp.rb -O $(find $(brew --repository) -name libomp.rb)
|
|
brew install ninja libomp
|
|
brew pin libomp
|
|
|
|
mkdir build
|
|
cd build
|
|
cmake .. -GNinja -DGOOGLE_TEST=ON -DUSE_DMLC_GTEST=ON
|
|
ninja
|
|
|
|
- name: Install Python package
|
|
shell: bash -l {0}
|
|
run: |
|
|
cd python-package
|
|
python --version
|
|
python setup.py bdist_wheel --universal
|
|
pip install ./dist/*.whl
|
|
|
|
- name: Test Python package
|
|
shell: bash -l {0}
|
|
run: |
|
|
pytest -s -v ./tests/python
|
|
|
|
- name: Rename Python wheel
|
|
shell: bash -l {0}
|
|
if: matrix.config.os == 'macos-10.15'
|
|
run: |
|
|
TAG=macosx_10_15_x86_64.macosx_11_0_x86_64.macosx_12_0_x86_64
|
|
python tests/ci_build/rename_whl.py python-package/dist/*.whl ${{ github.sha }} ${TAG}
|
|
|
|
- name: Upload Python wheel
|
|
shell: bash -l {0}
|
|
if: |
|
|
(github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')) &&
|
|
matrix.os == 'macos-latest'
|
|
run: |
|
|
python -m awscli s3 cp python-package/dist/*.whl s3://xgboost-nightly-builds/${{ steps.extract_branch.outputs.branch }}/ --acl public-read
|
|
env:
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}
|