# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.5, 3.6, 3.7, 3.8]

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
    - uses: actions/checkout@v2
    
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
        pip install megengine -f https://megengine.org.cn/whl/mge.html

    # Runs a set of commands using the runners shell
    - name: Pylint check
      run: |
        export PYTHONPATH=$PWD:$PYTHONPATH
        pip install pylint
        pylint official/vision --rcfile=.pylintrc || pylint_ret=$?
        echo test, and deploy your project.
        if [ "$pylint_ret" ]; then
          exit $pylint_ret
        fi
        echo "All lint steps passed!"

    - name: Import hubconf check
      run: |
        python -c "import hubconf"
