update action #54
This file contains hidden or 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: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| jobs: | |
| build-and-test-standard: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: | |
| [ | |
| ubuntu-slim, | |
| ubuntu-24.04, | |
| ubuntu-24.04-arm, | |
| macos-15, | |
| macos-15-intel, | |
| windows-2025, | |
| ] | |
| python-version: ["3.11", "3.12", "3.13"] | |
| exclude: | |
| - os: macos-15-intel | |
| python-version: "3.13" # no TF support | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: Install audio system libs (Linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libsndfile1 | |
| - name: Install audio system libs (macOS) | |
| if: startsWith(matrix.os, 'macos') | |
| run: | | |
| brew update | |
| brew install libsndfile | |
| - name: Install audio system libs (Windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| choco install libsndfile | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Upgrade pip | |
| run: python -m pip install --upgrade pip | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install uv --upgrade | |
| python -m uv pip install twine build --upgrade | |
| python -m uv pip install --system .[tests] | |
| # - name: Run linters | |
| # run: | | |
| # ruff check src/birdnet | |
| # ruff check src/birdnet_tests | |
| # - name: Type checking | |
| # run: mypy | |
| - name: Download models | |
| run: | | |
| pytest -m "not repro and load_model" -n auto --max-worker-restart=0 | |
| - name: Run standard tests | |
| run: | | |
| pytest -m "not repro and not load_model and (not litert and not gpu)" -n auto --max-worker-restart=0 | |
| - name: Run LiteRT tests | |
| run: | | |
| pytest -m "not repro and not load_model and litert" -n auto --max-worker-restart=0 | |
| - name: Test build | |
| run: | | |
| python -m build -o dist/ | |
| python -m twine check dist/* | |
| build-and-test-repro: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: | |
| # repro without Intel macOS because TF >=2.17 is not supported there | |
| [ubuntu-slim, ubuntu-24.04, ubuntu-24.04-arm, macos-15, windows-2025] | |
| python-version: ["3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install audio system libs (Linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libsndfile1 | |
| - name: Install audio system libs (macOS) | |
| if: startsWith(matrix.os, 'macos') | |
| run: | | |
| brew update | |
| brew install libsndfile | |
| - name: Install audio system libs (Windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| choco install libsndfile | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Upgrade pip | |
| run: python -m pip install --upgrade pip | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install uv --upgrade | |
| python -m uv pip install twine build --upgrade | |
| python -m uv pip install --system .[tests,repro] | |
| - name: Download models | |
| run: | | |
| pytest -m "load_model" -n auto --max-worker-restart=0 | |
| - name: Run standard tests incl. repro tests | |
| run: | | |
| pytest -m "not load_model and (not litert and not gpu)" -n auto --max-worker-restart=0 | |
| - name: Run LiteRT tests incl. repro tests | |
| run: | | |
| pytest -m "not load_model and litert" -n auto --max-worker-restart=0 | |
| - name: Test build | |
| run: | | |
| python -m build -o dist/ | |
| python -m twine check dist/* |