Skip to content

Add files via upload #140

Add files via upload

Add files via upload #140

Workflow file for this run

name: Test Suite
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
gstreamer1.0-nice \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
python3-gi \
python3-gi-cairo \
gir1.2-gstreamer-1.0 \
gir1.2-gst-plugins-base-1.0
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-asyncio pytest-cov coverage psutil
- name: Run unit tests
run: |
# Run tests with coverage
python -m pytest \
tests/test_multiple_webrtc_connections.py \
-v --tb=short --cov=. --cov-report=xml
continue-on-error: true
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
if: always()
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.python-version }}
path: |
test_report.json
test_report.txt
coverage.xml
if: always()
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 black isort mypy
- name: Lint with flake8
run: |
# Stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# Exit-zero treats all errors as warnings
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
continue-on-error: true
- name: Check formatting with black
run: |
black --check --diff .
continue-on-error: true
- name: Check import sorting with isort
run: |
isort --check-only --diff .
continue-on-error: true
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install safety
run: |
python -m pip install --upgrade pip
pip install safety
- name: Run security checks
run: |
# Run safety check on requirements if they exist
if [ -f requirements.txt ]; then
safety check --json
else
echo "No requirements.txt found, skipping safety check"
fi
continue-on-error: true