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: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install poetry run: | curl -sSL https://install.python-poetry.org | python3 - - name: Install dependencies run: | # Ensure dependencies are installed without relying on a lock file. poetry update poetry install # Install ffmpeg on Ubuntu - name: Installing ffmpeg in Ubuntu if: matrix.os == 'ubuntu-latest' run: sudo apt-get install ffmpeg # Install ffmpeg on macOS using Homebrew - name: Installing ffmpeg in Mac if: matrix.os == 'macos-latest' run: brew install ffmpeg # Install choco and then ffmpeg on Windows - name: Installing choco and ffmpeg in Windows if: matrix.os == 'windows-latest' run: | Set-ExecutionPolicy Bypass -Scope Process -Force iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) choco install ffmpeg # Run pytest - name: Run Pytest env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: poetry run pytest