Skip to content

unittests.yml: Add macOS to the testing #311

unittests.yml: Add macOS to the testing

unittests.yml: Add macOS to the testing #311

Workflow file for this run

name: Unit tests
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
python-version: "3.9"
- os: ubuntu-22.04-arm
python-version: "3.10"
- os: ubuntu-22.04
python-version: "3.11"
- os: ubuntu-22.04
python-version: "3.12"
- os: ubuntu-22.04-arm
python-version: "3.13"
- os: macos-13 # runner.arch is X64 (Intel)
python-version: "3.13"
- os: macos-latest # runner.arch is ARM64 (Apple Silicon)
python-version: "3.13"
- os: windows-latest
python-version: "3.11"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- if: matrix.python-version >= '3.13'
run: |
python -m pip install standard-aifc setuptools
- name: Install Linux build dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y libpulse-dev libasound2-dev
sudo apt-get install --no-install-recommends -y portaudio19-dev
- name: Install ffmpeg (for Whisper)
if: runner.os != 'macOS'
uses: FedericoCarboni/setup-ffmpeg@v3
- name: Install Python dependencies (Ubuntu, <=3.12)
if: runner.os == 'Linux' && matrix.python-version != '3.13'
run: |
python -m pip install .[dev,audio,pocketsphinx,google-cloud,whisper-local,faster-whisper,openai,groq]
- name: Install Python dependencies (Ubuntu, 3.13)
if: runner.os == 'Linux' && matrix.python-version == '3.13'
run: |
python -m pip install standard-aifc setuptools
python -m pip install --no-build-isolation .[dev,audio,pocketsphinx,google-cloud,openai,groq]
- name: Install ffmpeg and portaudio on macOS
if: runner.os == 'macOS'
run: |
brew install ffmpeg portaudio
python -m pip install --no-build-isolation google .[dev,audio,openai,groq]
- name: Install Python dependencies (Windows)
if: runner.os == 'Windows'
run: |
python -m pip install .[dev,whisper-local,faster-whisper,google-cloud,openai,groq]
- name: Test with unittest
run: |
pytest --doctest-modules -v speech_recognition/recognizers/ tests/