Skip to content

Check for changes in NP json files #3

Check for changes in NP json files

Check for changes in NP json files #3

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'
# Clone dev version of probeinterface
- name: Clone external repository
run: |
git clone https://github.com/spikeinterface/probeinterface ./probeinterface
- name: Install probeinterface and matplotlib
run: pip install ./probeinterface matplotlib
- 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: |
rsync -av --include='*/' --include='*.json' --exclude='*' scripts/neuropixels_library_generated/ imec/
rm -r scripts/neuropixels_library_generated/
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"