Skip to content

Check for new NP probes #5

Check for new NP probes

Check for new NP probes #5

name: Check for new NP probes
on:
schedule:
- cron: '0 1 * * 1' # Every Monday at 01: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: |
cd scripts/
python check_for_new_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 imec library with new 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 library with new Neuropixels probes"
body: "This PR updates the probeinterace library with new Neuropixel probes, auto-generated file from the ProbeTable repository."
branch-suffix: short-commit-hash
base: "main"