diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..0a758061 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,57 @@ +name: Run Tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + formatting: + name: Check Formatting + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - name: Install Formatting + run: | + python -m pip install --upgrade pip + pip install hacking isort + - name: Check Formatting + run: | + flake8 . + grep -rlIP '[^\x00-\x7F]' rcb4 | grep '\.pyx\?' | sort > unicode.out; grep -rlI '# -\*- coding: \(utf-8\|latin-1\) -\*-' rcb4 | grep '\.pyx\?' | sort > coding.out; comm -23 unicode.out coding.out > test_code.out; cat test_code.out; test \! -s test_code.out + - name: Check isort + run: | + isort -c . + + tests: + name: Run Unit Tests + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [self-hosted] + steps: + - if: ${{ matrix.arch == 'arm64' }} + uses: deadsnakes/action@v2.1.1 + with: + python-version: "3.11" + - if: ${{ matrix.arch == 'amd64' }} + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: 'pip' + - name: Install Pytest + run: | + python -m pip install --upgrade pip setuptools wheel + pip install pytest hacking + - name: Install python package + run: pip install . + - name: Run Pytest + run: pytest -v tests