Session orchestrator #750
Workflow file for this run
This file contains 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
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: BciPy | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
build-ubuntu: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.8, 3.9] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Update OS, pip & install custom dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libgtk-3-dev | |
sudo apt-get install freeglut3-dev | |
sudo apt-get install freetype* | |
sudo apt-get install portaudio* | |
sudo apt-get install libsndfile* | |
sudo apt-get install xvfb | |
python -m pip install --upgrade pip | |
pip install attrdict3 | |
- name: Install dependencies | |
run: | | |
make dev-install | |
- name: Unit test | |
if: always() | |
run: | | |
set +e | |
xvfb-run coverage run --branch --source=bcipy -m pytest --mpl -k "not slow" | |
if [ $? -eq 0 ] | |
then | |
echo "Ubuntu run complete!" | |
elif [ $? -eq 134 ] | |
then | |
echo "Ubuntu tests run successfully, memory issues may be present" | |
exit 0 | |
else | |
echo "Ubuntu test failure" | |
fi | |
- name: type-check | |
run: | | |
make type | |
- name: lint | |
run: | | |
make lint | |
build-windows: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.8, 3.9] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: update pip & install custom dependencies | |
run: | | |
python -m pip install --upgrade pip | |
- name: install manually downloaded pyWinhook wheel for Python 3.9 | |
if: matrix.python-version == 3.9 | |
run: | | |
pip install ./.bcipy/downloads/pyWinhook-1.6.2-cp39-cp39-win_amd64.whl | |
- name: install dependencies | |
run: | | |
make dev-install | |
- name: unittest | |
if: always() | |
run: | | |
make coverage-report | |
- name: type-check | |
run: | | |
make type | |
- name: lint | |
run: | | |
make lint | |
build-macos: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.8, 3.9] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: update pip & install custom dependencies | |
run: | | |
sh scripts/shell/m2chip_install.sh | |
brew install labstreaminglayer/tap/lsl | |
python -m pip install --upgrade pip | |
- name: install dependencies | |
run: | | |
make dev-install | |
- name: unittest | |
if: always() | |
run: | | |
make coverage-report | |
- name: type-check | |
run: | | |
make type | |
- name: lint | |
run: | | |
make lint | |