# Run python library tests whenever code is pushed to master

name: Python Bindings

on:
  push:
    branches:
      - master

  pull_request:
    branches-ignore:
      - l10*

jobs:

  python:
    runs-on: ubuntu-latest

    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      INVENTREE_DB_NAME: './test_db.sqlite'
      INVENTREE_DB_ENGINE: 'sqlite3'
      INVENTREE_DEBUG: info
      INVENTREE_MEDIA_ROOT: ./media
      INVENTREE_STATIC_ROOT: ./static

    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
      - name: Install InvenTree
        run: |
          sudo apt-get update
          sudo apt-get install python3-dev python3-pip python3-venv
          pip3 install invoke
          invoke install
          invoke migrate
      - name: Download Python Code
        run: |
          git clone --depth 1 https://github.com/inventree/inventree-python ./inventree-python
      - name: Start Server
        run: |
          invoke import-records -f ./inventree-python/test/test_data.json
          invoke server -a 127.0.0.1:8000 &
          sleep 60
      - name: Run Tests
        run: |
          cd inventree-python
          invoke test