name: Python application

on:
  push:
    branches:
      - master

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python 3.9
      uses: actions/setup-python@v1
      with:
        python-version: 3.9
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Lint with flake8
      run: |
        pip install flake8
        # 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 robinhood with pytest
      env:
        robin_username: ${{ secrets.username }}
        robin_password: ${{ secrets.password }}
        robin_mfa: ${{ secrets.mfa }}
        account_number: ${{ secrets.account }}
        zipcode: ${{ secrets.zipcode }}
        crypto_account: ${{ secrets.crypto }}
      run: |
        pip install pytest
        pip install pytest-dotenv
        pip install python-dateutil
        pytest tests/test_robinhood.py
    - name: Test gemini with pytest
      env:
        account_number: ${{ secrets.account }}
        zipcode: ${{ secrets.zipcode }}
        crypto_account: ${{ secrets.crypto }}
        gemini_account_key: ${{ secrets.gemini_account_key }}
        gemini_account_secret: ${{ secrets.gemini_account_secret }}
        gemini_sandbox_key: ${{ secrets.gemini_sandbox_key }}
        gemini_sandbox_secret: ${{ secrets.gemini_sandbox_secret }}
      run: |
        pip install pytest
        pip install pytest-dotenv
        pip install python-dateutil
        pytest tests/test_gemini.py
    - name: Test TDA with pytest
      env:
        account_number: ${{ secrets.account }}
        zipcode: ${{ secrets.zipcode }}
        crypto_account: ${{ secrets.crypto }}
        tda_encryption_passcode: ${{ secrets.tda_encryption_passcode }}
        tda_order_account: ${{ secrets.tda_order_account }}
      run: |
        pip install pytest
        pip install pytest-dotenv
        pip install python-dateutil
        pytest tests/test_tda.py
