Testing Kilosort4 #305
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: Testing Kilosort4 | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 12 * * 0" # Weekly on Sunday at noon UTC | |
| pull_request: | |
| paths: | |
| - '**/kilosort4.py' | |
| - '**/test_kilosort4_ci.py' | |
| jobs: | |
| versions: | |
| # Poll Pypi for all released KS4 versions >4.0.16, save to JSON | |
| # and store them in a matrix for the next job. | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: "3.12" | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: | | |
| uv pip install --system requests packaging | |
| uv pip install --system . | |
| - name: Fetch package versions from PyPI | |
| run: | | |
| python .github/scripts/check_kilosort4_releases.py | |
| shell: bash | |
| - name: Set matrix data | |
| id: set-matrix | |
| run: | | |
| echo "matrix=$(jq -c . < .github/scripts/kilosort4-latest-version.json)" >> $GITHUB_OUTPUT | |
| test: | |
| needs: versions | |
| name: ${{ matrix.ks_version }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12"] | |
| os: [ubuntu-latest] | |
| ks_version: ${{ fromJson(needs.versions.outputs.matrix) }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Setup Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| enable-cache: true | |
| - name: Install SpikeInterface | |
| run: | | |
| uv pip install --system -e .[full] --group test-sorters | |
| shell: bash | |
| - name: Install legacy setuptools for KS4 < 4.0.19 | |
| if: matrix.ks_version == '4.0.16' || matrix.ks_version == '4.0.17' || matrix.ks_version == '4.0.18' | |
| run: uv pip install --system setuptools==78.0.2 | |
| - name: Install Kilosort | |
| run: | | |
| uv pip install --system kilosort==${{ matrix.ks_version }} | |
| shell: bash | |
| - name: Run new kilosort4 tests | |
| run: | | |
| pytest .github/scripts/test_kilosort4_ci.py | |
| shell: bash |