name: CI build

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  build:

    runs-on: ubuntu-18.04
    strategy:
      fail-fast: false
      max-parallel: 6
      matrix:
        python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]

    steps:
    - uses: actions/checkout@v1
    - 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
    - name: Install SeleniumBase
      run: |
        python setup.py install
    - name: Lint with flake8
      run: |
        pip install flake8
        # Stop the build if there are flake8 issues
        flake8 . --count --show-source --statistics --exclude=temp
    - name: Install Chrome and Firefox
      run: |
        sudo apt install google-chrome-stable
        sudo apt-get install firefox
    - name: Check the console scripts interface
      run: |
        seleniumbase
        sbase
    - name: Install chromedriver and geckodriver (Firefox Webdriver)
      run: |
        seleniumbase install chromedriver
        seleniumbase install geckodriver
    - name: Make sure pytest is working
      run: |
        echo "def test_1(): pass" > nothing.py
        pytest nothing.py
    - name: Make sure nosetests is working
      run: |
        echo "def test_2(): pass" > nothing2.py
        nosetests nothing2.py
    - name: Run pytest verify_framework.py --browser=chrome --headless
      run: |
        pytest examples/unit_tests/verify_framework.py --browser=chrome --headless -v -s --junit-xml=junit/test-results.xml
    - name: Run pytest boilerplate_test.py --browser=chrome --headless
      run: |
        pytest examples/boilerplates/boilerplate_test.py --browser=chrome --headless -v -s --junit-xml=junit/test-results.xml
    - name: Run pytest test_demo_site.py --browser=chrome --headless
      run: |
        pytest examples/test_demo_site.py --browser=chrome --headless -v -s --junit-xml=junit/test-results.xml
    - name: Run pytest my_first_test.py --browser=chrome --headless
      run: |
        pytest examples/my_first_test.py --browser=chrome --headless -v -s --junit-xml=junit/test-results.xml
    - name: Run pytest test_inspect_html.py --browser=chrome --headless
      run: |
        pytest examples/test_inspect_html.py --browser=chrome --headless -v -s --junit-xml=junit/test-results.xml
    - name: Run pytest my_first_test.py --browser=firefox --headless
      run: |
        pytest examples/my_first_test.py --browser=firefox --headless -v -s --junit-xml=junit/test-results.xml
