|
|
|
name: Run Test
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
pull_request:
|
|
|
|
branches: [main]
|
|
|
|
# push: # Trigger the workflow on push events
|
|
|
|
|
|
|
|
concurrency:
|
|
|
|
group: "test"
|
|
|
|
cancel-in-progress: false
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
pytest:
|
|
|
|
name: Run Test
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
os: [macos-latest]
|
|
|
|
# os: [ubuntu-latest, windows-latest, macos-latest]
|
|
|
|
python-version: ["3.11"]
|
|
|
|
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
working-directory: software
|
|
|
|
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
|
|
|
|
- name: Install poetry
|
|
|
|
run: pipx install poetry
|
|
|
|
|
|
|
|
- name: Setup Python ${{ matrix.python-version }}
|
|
|
|
uses: actions/setup-python@v5
|
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
cache: "poetry"
|
|
|
|
|
|
|
|
# Install Portaudio on Ubuntu
|
|
|
|
- name: Installing Portaudio in Ubuntu
|
|
|
|
if: matrix.os == 'ubuntu-latest'
|
|
|
|
run: sudo apt-get install portaudio19-dev python-all-dev
|
|
|
|
|
|
|
|
# Install Portaudio on macOS using Homebrew
|
|
|
|
- name: Installing Portaudio in Mac
|
|
|
|
if: matrix.os == 'macos-latest'
|
|
|
|
run: brew install portaudio
|
|
|
|
|
|
|
|
# Install Poetry and project dependencies
|
|
|
|
- name: Install Poetry Package
|
|
|
|
run: |
|
|
|
|
pip install --upgrade pip
|
|
|
|
pip install poetry==1.3.2
|
|
|
|
poetry config virtualenvs.create false
|
|
|
|
poetry install --no-interaction --with dev
|
|
|
|
|
|
|
|
# Run pytest
|
|
|
|
- name: Run Pytest
|
|
|
|
env:
|
|
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
|
|
run: poetry run pytest
|