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

name: MacOS_CI

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

jobs:
  build:
    runs-on: macos-latest
    strategy:
      matrix:
        python-version: [ '3.9' ]
    name: Python ${{ matrix.python-version }} CI
    steps:
      - uses: actions/checkout@v2
      - run: git fetch --prune --unshallow

      - name: Update bash
        run: brew install bash

      - name: Setup python
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install numpy # cvxpy install workaround
          pip install -r requirements.txt
      - name: install coverage
        run: pip install coverage
      - name: install mypy
        run: pip install mypy
      - name: install pycodestyle
        run: pip install pycodestyle
      - name: install pytest-xdist
        run: pip install pytest-xdist
      - name: mypy check
        run: |
          mypy -p AerialNavigation
          mypy -p ArmNavigation
          mypy -p Bipedal
          mypy -p InvertedPendulumCart
          mypy -p Localization
          mypy -p Mapping
          mypy -p PathPlanning
          mypy -p PathTracking
          mypy -p SLAM
      - name: do diff style check
        run: bash rundiffstylecheck.sh

      - name: do all unit tests
        run: bash runtests.sh




