Python 3.x #65
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: [pull_request, push] | |
jobs: | |
codespell_and_ruff: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: pipx run 'codespell[toml]' **/*.py **/*.txt --skip="venv/lib/python3*" | |
- run: pipx run ruff check --output-format=github --target-version=py39 | |
ci: | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: # macos-13 in Intel, macos-14 is Apple Silicon ARM | |
os: [macos-13, macos-14, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: {python-version: 3.x} | |
- if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install fluidsynth python3-pyaudio portaudio19-dev libasound-dev | |
- if: runner.os == 'macOS' | |
run: | | |
brew install fluid-synth | |
echo "DYLD_LIBRARY_PATH=$(brew --prefix fluid-synth)/lib/" >> $GITHUB_ENV | |
- if: runner.os == 'Windows' | |
run: choco install fluidsynth | |
- run: python -m pip install --upgrade pip | |
- run: pip install pyaudio | |
- run: pip install --editable . | |
- shell: python | |
run: | | |
import fluidsynth | |
print(fluidsynth) | |
print(dir(fluidsynth)) | |
# NOTE: The files in test/ are NOT unittests or pytests. | |
# On macOS ARM64 the following tests will pass but each takes 8 minutes to run. | |
# On macOS X64 all tests will pass quickly. | |
- if: runner.os == 'macOS' && runner.arch == 'X64' | |
run: | | |
python test/test1.py | |
python test/test2.py | |
python test/test3.py | |
python test/sequencerTest.py | |
# On Linux test2.py will fail even with xvfb-run but the other tests will pass quickly. | |
- if: runner.os == 'Linux' | |
run: | | |
python test/test1.py | |
# xvfb-run python test/test2.py | |
python test/test3.py | |
python test/sequencerTest.py | |
# On Windows all tests will pass quickly. | |
- if: runner.os == 'Windows' | |
run: | | |
python test/test1.py | |
python test/test2.py | |
python test/test3.py | |
python test/sequencerTest.py |