Skip to content

[DOW-118] set up code linting and tests #1334

[DOW-118] set up code linting and tests

[DOW-118] set up code linting and tests #1334

Workflow file for this run

name: test
on:
push:
branches: [main]
pull_request:
branches: [main, vocode-core-0.1.0]
env:
poetry-version: "1.8.3"
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install ffmpeg
run: |
sudo apt-get update
sudo apt-get install -y ffmpeg
lint:
strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
runs-on: ubuntu-latest
needs: setup
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Set up Poetry
uses: abatilo/[email protected]
with:
poetry-version: ${{ env.poetry-version }}
- name: Install dependencies
working-directory: ./vocode-core
run: poetry install -E all
- name: Run mypy
working-directory: ./vocode-core
run: |
python -m poetry run mypy -p vocode
python -m poetry run mypy -p quickstarts
python -m poetry run mypy -p playground
- name: Run black
working-directory: ./vocode-core
if: success() || failure()
run: poetry run black --check .
- name: Run isort
shell: bash
if: success() || failure()
run: poetry run isort --check .
test:
strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
runs-on: ubuntu-latest
# needs: setup
steps:
- uses: actions/checkout@v2
- name: Install ffmpeg
run: |
sudo apt-get update
sudo apt-get install -y ffmpeg
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Set up Poetry
uses: abatilo/[email protected]
with:
poetry-version: ${{ env.poetry-version }}
- name: Install dependencies
run: poetry install -E all
- name: Test with pytest
run: |
poetry run pytest -v tests
- name: Store code coverage file
uses: actions/upload-artifact@v4
with:
name: coverage-${{ github.sha }}
path: coverage.xml
coverage:
if: github.event_name == 'pull_request'
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: coverage-${{ github.sha }}
- name: Get Coverage Report
uses: orgoro/[email protected]
with:
coverageFile: coverage.xml
token: ${{ secrets.GITHUB_TOKEN }}
thresholdAll: 0.60
thresholdNew: 0
thresholdModified: 0