fixing gain tracker #2212
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
name: Run Unix | |
on: [push, pull_request] | |
jobs: | |
RunUnix: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
max-parallel: 4 | |
matrix: | |
os: [ubuntu-20.04, macos-11.0] | |
steps: | |
# compile and prepare env | |
- name: Clone Repository | |
uses: actions/checkout@v2 | |
- name: Set Version | |
id: version | |
run: if [ $GITHUB_REF_TYPE == "tag" ]; then echo "::set-output name=version::$GITHUB_REF_NAME"; else echo "::set-output name=version::$GITHUB_SHA"; fi | |
- name: Check Version | |
run: echo ${{ steps.version.outputs.version }} | |
- name: Install Python 3.7 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: '3.7.7' | |
architecture: 'x64' | |
- name: Install Python Dependencies | |
if: (matrix.os == 'ubuntu-20.04') | |
run: | | |
sudo -H apt-get update -y | |
sudo -H apt-get install -y python3-setuptools python3-pygments libbluetooth-dev | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: Install Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Install Typescript | |
run: | | |
npm install -g ts-node | |
- name: Install Ninja | |
if: (matrix.os == 'macos-11.0') | |
uses: seanmiddleditch/gha-setup-ninja@master | |
with: | |
version: 1.10.2 | |
- name: Install Julia | |
uses: julia-actions/setup-julia@v1 | |
with: | |
version: 1.3.1 | |
- name: Setup Cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.21.x' | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11.0.3 | |
# build simpleble outside from brainflow because of different deployment targets | |
- name: Compile SimpleBLE MacOS | |
if: (matrix.os == 'macos-11.0') | |
run: | | |
mkdir $GITHUB_WORKSPACE/third_party/SimpleBLE/simpleble/build | |
cd $GITHUB_WORKSPACE/third_party/SimpleBLE/simpleble/build | |
cmake -G Ninja -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/installed -DCMAKE_BUILD_TYPE=Release .. | |
ninja | |
ninja install | |
- name: Compile BrainFlow MacOS | |
if: (matrix.os == 'macos-11.0') | |
run: | | |
mkdir $GITHUB_WORKSPACE/build | |
cd $GITHUB_WORKSPACE/build | |
cmake -G Ninja -DBRAINFLOW_VERSION=$BRAINFLOW_VERSION -DBUILD_ONNX=ON -DBUILD_BLUETOOTH=ON -DBUILD_TESTS=ON -DWARNINGS_AS_ERRORS=ON -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/installed -DCMAKE_BUILD_TYPE=Release .. | |
ninja | |
ninja install | |
env: | |
BRAINFLOW_VERSION: ${{ steps.version.outputs.version }} | |
- name: Compile BrainFlow Ubuntu | |
if: (matrix.os == 'ubuntu-20.04') | |
run: | | |
mkdir $GITHUB_WORKSPACE/build | |
cd $GITHUB_WORKSPACE/build | |
cmake -DBRAINFLOW_VERSION=$BRAINFLOW_VERSION -DBUILD_BLUETOOTH=ON -DBUILD_ONNX=ON -DBUILD_TESTS=ON -DWARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/installed -DCMAKE_BUILD_TYPE=Release .. | |
make | |
make install | |
env: | |
BRAINFLOW_VERSION: ${{ steps.version.outputs.version }} | |
- name: Compile BrainFlow in ManyLinux | |
# bindings in production have to use libraries compiled inside this image! | |
if: (matrix.os == 'ubuntu-20.04') | |
run: | | |
docker pull dockcross/manylinux2014-x64:20210708-94745ff | |
docker run -e BRAINFLOW_VERSION=$BRAINFLOW_VERSION -e GITHUB_WORKSPACE=$GITHUB_WORKSPACE -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE dockcross/manylinux2014-x64:20210708-94745ff /bin/bash -c "yum install -y bluez-libs-devel dbus-devel && /opt/python/cp36-cp36m/bin/pip3.6 install cmake==3.21.4 && cd $GITHUB_WORKSPACE && mkdir build_docker && cd build_docker && /opt/_internal/cpython-3.6.14/bin/cmake -DBRAINFLOW_VERSION=$BRAINFLOW_VERSION -DBUILD_ONNX=ON -DBUILD_BLE=ON -DBUILD_BLUETOOTH=ON -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/installed_docker -DCMAKE_BUILD_TYPE=Release .. && make && make install" | |
env: | |
BRAINFLOW_VERSION: ${{ steps.version.outputs.version }} | |
- name: Setup Python Package | |
run: | | |
cd $GITHUB_WORKSPACE/python_package | |
sudo -H python3 -m pip install -U . | |
- name: Build Node Package | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/brainflow | |
npm install | |
npm run build | |
- name: Install Node Tests | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm install | |
- name: Setup Java package | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn package | |
cp -av $GITHUB_WORKSPACE/java_package/brainflow/target/classes/brainflow/. $GITHUB_WORKSPACE/java_package/brainflow/target/classes/ | |
cp -av $GITHUB_WORKSPACE/java_package/brainflow/target/classes/brainflow/. $GITHUB_WORKSPACE/java_package/brainflow/target/classes/ | |
- name: Build Get Data Test | |
run: | | |
cd $GITHUB_WORKSPACE/cpp_package/examples/get_data | |
mkdir build | |
cd build | |
cmake -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/installed .. | |
make | |
- name: Build Signal Processing Test | |
run: | | |
cd $GITHUB_WORKSPACE/cpp_package/examples/signal_processing | |
mkdir build | |
cd build | |
cmake -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/installed .. | |
make | |
- name: Build ML Demo Test | |
run: | | |
cd $GITHUB_WORKSPACE/cpp_package/examples/ml | |
mkdir build | |
cd build | |
cmake -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/installed .. | |
make | |
- name: Install Emulator | |
run: | | |
cd $GITHUB_WORKSPACE/emulator | |
sudo -H python3 -m pip install -U . | |
- name: Install Python test Dependencies | |
run: sudo -H python3 -m pip install -r $GITHUB_WORKSPACE/python_package/examples/tests/requirements.txt | |
# start testing | |
- name: Run unit tests | |
run: $GITHUB_WORKSPACE/build/tests/brainflow_tests | |
- name: Run All Julia Tests | |
run: | | |
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/installed/lib:$LD_LIBRARY_PATH | |
julia --project=$GITHUB_WORKSPACE/julia_package/brainflow -e "import Pkg; Pkg.test()" | |
- name: Cyton Python | |
run: sudo -H python3 ./emulator/brainflow_emulator/cyton_linux.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_get_data.py --board-id 0 --serial-port | |
- name: Cyton Python Commands | |
run: sudo -H python3 ./emulator/brainflow_emulator/cyton_linux.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/cyton_commands.py --serial-port | |
- name: Cyton Python Markers | |
run: sudo -H python3 ./emulator/brainflow_emulator/cyton_linux.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/markers.py --board-id 0 --serial-port | |
- name: Multiboard Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/cyton_linux.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_multiboard_get_data.py --board-id 0 --serial-port | |
- name: Cyton Cpp | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/cyton_linux.py $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id 0 --serial-port | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Synthetic Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_get_data.py --board-id -1 | |
- name: Synthetic Python Multiple Buffers | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/multiple_buffers.py | |
- name: Synthetic Python Multiple Streamers | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/multiple_streamers.py | |
- name: Playback Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/playback_test.py | |
- name: Synthetic Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id -1 | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Synthetic Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.BrainFlowGetData" -Dexec.args="--board-id -1" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Synthetic Java Markers | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.Markers" -Dexec.args="--board-id -1" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Cyton Daisy Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/cyton_linux.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_get_data.py --board-id 2 --serial-port | |
- name: Cyton Daisy Python Markers | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/cyton_linux.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/markers.py --board-id 2 --serial-port | |
- name: Galea Cpp | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/galea_udp.py $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id 3 --ip-address 127.0.0.1 | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Galea Cpp Markers | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/galea_udp.py $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/markers --board-id 3 --ip-address 127.0.0.1 | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Streaming Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/streaming_board_emulator.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_get_data.py --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --master-board -1 | |
- name: Streaming Python Markers | |
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/streaming_board_emulator.py python3 $GITHUB_WORKSPACE/python_package/examples/tests/markers.py --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --master-board -1 | |
- name: Denoising Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/denoising.py | |
- name: Serialization Python | |
run: | | |
cd $GITHUB_WORKSPACE | |
sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/serialization.py | |
- name: Python Release All | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/release_all.py | |
- name: Filters Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/signal_filtering.py | |
- name: Transforms Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/transforms.py | |
- name: Downsampling Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/downsampling.py | |
- name: ICA Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/ica.py | |
- name: CSP Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/csp.py | |
- name: Windowing Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/windowing.py | |
- name: MNE Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_to_mne.py | |
- name: BandPower Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/band_power.py | |
- name: BandPowerAll Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/band_power_all.py | |
- name: Denoising Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/denoising | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Downsampling Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/downsampling | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: CSP Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/csp | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Windowing Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/windowing | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Filters Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/signal_filtering | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Serialization Cpp | |
run: | | |
cd $GITHUB_WORKSPACE | |
sudo -H $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/serialization | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Transforms Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/transforms | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: BandPower Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/signal_processing/build/band_power | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Denoising Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.Denoising" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: ICA Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.ICA" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Downsampling Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.Downsampling" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: CSP Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.CSP" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Windowing Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.Windowing" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Transforms Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.Transforms" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: BandPower Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.BandPower" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: EEG Metrics Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/eeg_metrics.py --board-id -1 | |
- name: EEG Metrics Custom Python | |
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/eeg_metrics_ci.py --board-id -1 --classifier 2 --metric 2 --model-file $GITHUB_WORKSPACE/src/ml/train/logreg_mindfulness.onnx | |
- name: EEG Metrics Cpp | |
run: $GITHUB_WORKSPACE/cpp_package/examples/ml/build/eeg_metrics --board-id -1 | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: EEG Metrics Cpp Dyn Lib | |
if: (matrix.os == 'ubuntu-20.04') | |
run: $GITHUB_WORKSPACE/cpp_package/examples/ml/build/eeg_metrics_ci --board-id -1 --metric 2 --classifier 1 --model-file $GITHUB_WORKSPACE/cpp_package/examples/ml/build/libdyn_lib_test.so | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: EEG Metrics Java | |
run: | | |
cd $GITHUB_WORKSPACE/java_package/brainflow | |
mvn exec:java -Dexec.mainClass="brainflow.examples.EEGMetrics" -Dexec.args="--board-id -1" | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib | |
- name: Synthetic Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run brainflow_get_data | |
- name: Signal Filters Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run signal_filtering | |
- name: Serialization Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run serialization | |
- name: Downsampling Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run downsampling | |
- name: Denoising Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run denoising | |
- name: EEG Metrics Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run eeg_metrics | |
- name: BandPowerAll Node | |
run: | | |
cd $GITHUB_WORKSPACE/nodejs_package/tests | |
npm run bandpower_all | |
# deploy started | |
- name: Install AWS CLI | |
run: sudo -H python3 -m pip install awscli==1.21.10 | |
- name: Push Libraries Linux Docker | |
if: ${{ github.event_name == 'push' && matrix.os == 'ubuntu-20.04' && github.repository == 'brainflow-dev/brainflow' }} | |
run: | | |
aws s3 cp $GITHUB_WORKSPACE/installed_docker/lib/ s3://brainflow/$GITHUB_SHA/linux --recursive | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
- name: Push Libraries MacOS Dev | |
if: ${{ github.event_name == 'push' && matrix.os == 'macos-11.0' && github.repository == 'brainflow-dev/brainflow' }} | |
run: | | |
aws s3 cp $GITHUB_WORKSPACE/installed/lib/ s3://brainflow/$GITHUB_SHA/macos_release --recursive | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |