NeoPlexon2Test #16
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: NeoPlexon2Test | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 12 * * 0" # weekly at noon UTC on Sundays | |
jobs: | |
build-and-test: | |
name: Test on (${{ matrix.os }}) (${{ matrix.python-version}}) (${{ matrix.numpy-version }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.9', '3.12'] | |
numpy-version: ['1.26', '2.0'] | |
defaults: | |
# by default run in bash mode (required for conda usage) | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Get current year-month | |
id: date | |
run: echo "date=$(date +'%Y-%m')" >> $GITHUB_OUTPUT | |
- name: Get ephy_testing_data current head hash | |
# the key depend on the last commit repo https://gin.g-node.org/NeuralEnsemble/ephy_testing_data.git | |
id: ephy_testing_data | |
run: | | |
echo "dataset_hash=$(git ls-remote https://gin.g-node.org/NeuralEnsemble/ephy_testing_data.git HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
- uses: actions/cache/restore@v4 | |
# Loading cache of ephys_testing_dataset | |
id: cache-datasets | |
with: | |
path: ~/ephy_testing_data | |
key: ${{ runner.os }}-datasets-${{ steps.ephy_testing_data.outputs.dataset_hash }} | |
restore-keys: ${{ runner.os }}-datasets- | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
activate-environment: neo-test-env-${{ matrix.python-version }} | |
python-version: "${{ matrix.python-version }}" | |
- name: Install testing dependencies | |
# testing environment is only created from yml if no cache was found | |
# restore-key hits should result in `cache-hit` == 'false' | |
#if: steps.cache-conda-env.outputs.cache-hit != 'true' | |
run: | | |
conda install pip numpy=${{ matrix.numpy-version }} -c conda-forge | |
# this command is for updating cache. We are resting removal. | |
# conda env update --name neo-test-env-${{ matrix.python-version }} --file environment_testing.yml --prune | |
- name: Install git-annex | |
# this is the trick from the spikeinterface repo for getting git-annex to work with datalad | |
# see https://github.com/SpikeInterface/spikeinterface/pull/3877 for more info | |
shell: bash | |
run: | | |
pip install datalad-installer | |
datalad-installer --sudo ok git-annex --method datalad/packages | |
git config --global filter.annex.process "git-annex filter-process" # recommended for efficiency | |
- name: Configure git | |
run: | | |
git config --global user.email "neo_ci@fake_mail.com" | |
git config --global user.name "neo CI" | |
- name: Python version | |
run: | | |
which python | |
python --version | |
- name: Install neo including dependencies | |
# installation with dependencies is only required if no cache was found | |
# restore-key hits should result in `cache-hit` == 'false' | |
# if: steps.cache-conda-env.outputs.cache-hit != 'true' | |
run: | | |
pip install --upgrade -e . | |
pip install .[test] | |
- name: Install wine | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 wine | |
- name: Pip list | |
run: | | |
pip list | |
- name: Conda list | |
run: | | |
conda list | |
- name: Test with pytest | |
env: | |
HDF5_PLUGIN_PATH: ${{ github.workspace }}/hdf5_local_plugin_path | |
PLEXON2_TEST: true | |
run: | | |
# only neo.rawio and neo.io | |
pytest --cov=neo neo/test/rawiotest | |
pytest --cov=neo neo/test/iotest |