Check for changes in NP json files #6
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: Check for changes in NP json files | |
| on: | |
| schedule: | |
| - cron: '0 0 * * 2' # Every Tuesday at 00:00 UTC | |
| workflow_dispatch: | |
| # Grant permissions for the job to write to contents (push) and create PRs. | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| build-and-pr: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out local repository | |
| uses: actions/checkout@v4 | |
| # Set up a Python environment | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| # we just the release probeinterface to get the version number | |
| - name: Install probeinterface and matplotlib | |
| run: | | |
| pip install probeinterface matplotlib | |
| PROBEINTERFACE_VERSION=$(pip show probeinterface | grep Version | awk '{print $2}') | |
| pip uninstall probeinterface --yes | |
| git clone https://github.com/spikeinterface/probeinterface ./probeinterface | |
| cd probeinterface | |
| git fetch | |
| git checkout tags/$PROBEINTERFACE_VERSION | |
| cd .. | |
| pip install ./probeinterface | |
| - name: Generate full NP library | |
| run: | | |
| cd scripts/ | |
| python ../probeinterface/resources/generate_neuropixels_library.py | |
| # Check for any new probes | |
| - name: Run local script | |
| run: | | |
| cd scripts/ | |
| python check_for_json_changes_in_NP_probes.py | |
| rm -r neuropixels_library_generated/ | |
| cd .. | |
| rm -r ./probeinterface | |
| - name: Commit changes if any | |
| id: commit | |
| run: | | |
| git config --local user.email "[email protected]" | |
| git config --local user.name "GitHub Action" | |
| git add imec/* | |
| # Only commit if there are changes | |
| if git diff --staged --quiet; then | |
| echo "No changes to commit" | |
| echo "changes=false" >> $GITHUB_OUTPUT | |
| else | |
| git commit -m "Update json files for NP probes" | |
| echo "changes=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Create pull request to add probes | |
| if: steps.commit.outputs.changes == 'true' | |
| uses: peter-evans/create-pull-request@v7 | |
| with: | |
| title: "Update Neuropixels json files" | |
| body: "This PR updates the Neuropixel probes in probeinterace library, based on new data from the ProbeTable repository or because of a new ProbeInterface release." | |
| branch-suffix: short-commit-hash | |
| base: "main" |