|
- # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
-
- name: Build
-
- on:
- push:
- branches: ['main']
- pull_request:
- branches: ['main']
-
- jobs:
- build:
-
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ubuntu-latest, macos-latest, windows-2019]
- python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
-
- steps:
- - uses: actions/checkout@v2
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
- with:
- python-version: ${{ matrix.python-version }}
- - name: On mac + python 3.10, install libomp to facilitate lgbm and xgboost install
- if: matrix.os == 'macOS-latest' && matrix.python-version == '3.10'
- run: |
- # remove libomp version constraint after xgboost works with libomp>11.1.0 on python 3.10
- wget https://raw.githubusercontent.com/Homebrew/homebrew-core/679923b4eb48a8dc7ecc1f05d06063cd79b3fc00/Formula/libomp.rb -O $(find $(brew --repository) -name libomp.rb)
- brew unlink libomp
- brew install libomp
- export CC=/usr/bin/clang
- export CXX=/usr/bin/clang++
- export CPPFLAGS="$CPPFLAGS -Xpreprocessor -fopenmp"
- export CFLAGS="$CFLAGS -I/usr/local/opt/libomp/include"
- export CXXFLAGS="$CXXFLAGS -I/usr/local/opt/libomp/include"
- export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/local/opt/libomp/lib -L/usr/local/opt/libomp/lib -lomp"
- - name: Install packages and dependencies
- run: |
- python -m pip install --upgrade pip wheel
- pip install -e .
- python -c "import flaml"
- pip install -e .[test]
- - name: If linux or mac, install ray
- if: matrix.os == 'macOS-latest' || matrix.os == 'ubuntu-latest'
- run: |
- pip install -e .[ray]
- - name: If linux or mac, install prophet on python < 3.9
- if: (matrix.os == 'macOS-latest' || matrix.os == 'ubuntu-latest') && matrix.python-version != '3.9' && matrix.python-version != '3.10'
- run: |
- pip install -e .[forecast]
- - name: Lint with flake8
- run: |
- # stop the build if there are Python syntax errors or undefined names
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- - name: Test with pytest
- if: (matrix.python-version != '3.7' || matrix.os == 'macos-latest') && matrix.python-version != '3.10'
- run: |
- pytest test
- - name: Coverage
- if: (matrix.python-version == '3.7') && matrix.os != 'macos-latest' || matrix.python-version == '3.10'
- run: |
- pip install coverage
- coverage run -a -m pytest test
- coverage xml
- - name: Upload coverage to Codecov
- if: (matrix.python-version == '3.7') && matrix.os != 'macos-latest' || matrix.python-version == '3.10'
- uses: codecov/codecov-action@v1
- with:
- file: ./coverage.xml
- flags: unittests
-
- # docs:
-
- # runs-on: ubuntu-latest
-
- # steps:
- # - uses: actions/checkout@v2
- # - name: Setup Python
- # uses: actions/setup-python@v2
- # with:
- # python-version: '3.8'
- # - name: Compile documentation
- # run: |
- # pip install -e .
- # python -m pip install sphinx sphinx_rtd_theme
- # cd docs
- # make html
- # - name: Deploy to GitHub pages
- # if: ${{ github.ref == 'refs/heads/main' }}
- # uses: JamesIves/github-pages-deploy-action@3.6.2
- # with:
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # BRANCH: gh-pages
- # FOLDER: docs/_build/html
- # CLEAN: true
|