name: Unit Tests on: [push, pull_request] jobs: lines: name: Less than 1000 lines runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Install SLOCCount run: sudo apt-get install sloccount - name: Check <1000 lines run: sloccount tinygrad test examples extra; if [ $(sloccount tinygrad | sed -n 's/.*Total Physical Source Lines of Code (SLOC)[ ]*= \([^ ]*\).*/\1/p' | tr -d ',') -gt 1000 ]; then exit 1; fi linter: name: Indentation Linter runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install pylint # pip install -r requirements.txt - name: Lint with pylint run: | python -m pylint --disable=all -e W0311 --jobs=0 --indent-string=' ' **/*.py testcpu: name: CPU Tests runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Update packages run: sudo apt-get update - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install Dependencies run: pip install -e '.[testing]' - name: Run Pytest run: python -m pytest -s -v testtorch: name: Torch Tests runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Update packages run: sudo apt-get update - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install Dependencies run: pip install -e '.[testing]' - name: Run Pytest run: TORCH=1 python -m pytest -s -v testgpu: name: GPU Tests runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Update packages run: sudo apt-get update - name: Install OpenCL run: sudo apt-get install pocl-opencl-icd - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install Dependencies run: pip install -e '.[gpu,testing]' - name: Run Pytest run: GPU=1 python -m pytest -s -v