Skip to content

Brainflow BA_v4 integration #2304

Brainflow BA_v4 integration

Brainflow BA_v4 integration #2304

Workflow file for this run

name: Run Windows
on: [push, pull_request]
jobs:
RunWindows:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 4
matrix:
os: [windows-2022]
steps:
- name: Clone Repository
uses: actions/checkout@v2
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: Install dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '7.0.x'
- name: Set Version
id: version
run: if ("tag" -eq $Env:GITHUB_REF_TYPE) { echo "::set-output name=version::$Env:GITHUB_REF_NAME" } else { echo "::set-output name=version::$Env:GITHUB_SHA" }
- name: Check Version
run: echo ${{ steps.version.outputs.version }}
- name: Set Path
run: |
echo %GITHUB_WORKSPACE%\tools>>%GITHUB_PATH%
echo %GITHUB_WORKSPACE%\installed64\lib>>%GITHUB_PATH%
echo %GITHUB_WORKSPACE%\installed32\lib>>%GITHUB_PATH%
shell: cmd
- name: Install JDK 11
uses: actions/setup-java@v1
with:
java-version: 11.0.3
- uses: hecrj/setup-rust-action@v1
with:
rust-version: nightly
components: cargo,rustc,rust-std
# compile and prepare everything
- name: Compile x32
run: |
mkdir %GITHUB_WORKSPACE%\build32
cd %GITHUB_WORKSPACE%\build32
cmake -DBRAINFLOW_VERSION=%BRAINFLOW_VERSION% -DBUILD_OYMOTION_SDK=ON -DBUILD_ONNX=ON -DBUILD_BLE=ON -DBUILD_BLUETOOTH=ON -DWARNINGS_AS_ERRORS=ON -G "Visual Studio 17 2022" -A Win32 -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_INSTALL_PREFIX=..\installed32\ ..
cmake --build . --target install --config Release -j 2 --parallel 2
env:
BRAINFLOW_VERSION: ${{ steps.version.outputs.version }}
shell: cmd
- name: Compile x64
run: |
mkdir %GITHUB_WORKSPACE%\build64
cd %GITHUB_WORKSPACE%\build64
cmake -DBRAINFLOW_VERSION=%BRAINFLOW_VERSION% -DBUILD_OYMOTION_SDK=ON -DBUILD_ONNX=ON -DBUILD_BLE=ON -DBUILD_BLUETOOTH=ON -DWARNINGS_AS_ERRORS=ON -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_INSTALL_PREFIX=..\installed64\ ..
cmake --build . --target install --config Release -j 2 --parallel 2
env:
BRAINFLOW_VERSION: ${{ steps.version.outputs.version }}
shell: cmd
- name: C# build
run: |
cd %GITHUB_WORKSPACE%\csharp_package\brainflow
dotnet restore brainflow.sln
msbuild brainflow.sln /p:Configuration=Release /p:Platform="Any CPU"
shell: cmd
- name: Install Emulator
run: |
pip install %GITHUB_WORKSPACE%\emulator\
cd %GITHUB_WORKSPACE%
.\emulator\brainflow_emulator\com0com\certmgr.exe /add %GITHUB_WORKSPACE%\emulator\brainflow_emulator\com0com\com0com.cer /s /r localMachine root
.\emulator\brainflow_emulator\com0com\certmgr.exe /add %GITHUB_WORKSPACE%\emulator\brainflow_emulator\com0com\com0com.cer /s /r localMachine trustedpublisher
shell: cmd
- name: Install Python package
run: |
pip install %GITHUB_WORKSPACE%\python_package\
pip install -r %GITHUB_WORKSPACE%\python_package\examples\tests\requirements.txt
shell: cmd
- name: Install Rust package
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
rustup toolchain install nightly
cargo +nightly build
shell: cmd
- name: Build Cpp Get Data Test x64
run: |
mkdir %GITHUB_WORKSPACE%\cpp_package\examples\get_data\build
cd %GITHUB_WORKSPACE%\cpp_package\examples\get_data\build
cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%\installed64\ ..
cmake --build . --config Release -j 2 --parallel 2
shell: cmd
- name: Build Cpp Signal Processing Test x64
run: |
mkdir %GITHUB_WORKSPACE%\cpp_package\examples\signal_processing\build
cd %GITHUB_WORKSPACE%\cpp_package\examples\signal_processing\build
cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%\installed64\ ..
cmake --build . --config Release -j 2 --parallel 2
shell: cmd
- name: Build Cpp ML Test x64
run: |
mkdir %GITHUB_WORKSPACE%\cpp_package\examples\ml\build
cd %GITHUB_WORKSPACE%\cpp_package\examples\ml\build
cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%\installed64\ ..
cmake --build . --config Release -j 2 --parallel 2
shell: cmd
- name: Build Cpp ML Test x32
run: |
mkdir %GITHUB_WORKSPACE%\cpp_package\examples\ml\build32
cd %GITHUB_WORKSPACE%\cpp_package\examples\ml\build32
cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%\installed32\ ..
cmake --build . --config Release -j 2 --parallel 2
shell: cmd
- name: Build Java Package
run: |
cd %GITHUB_WORKSPACE%\java_package\brainflow
mvn package
shell: cmd
- name: Install Julia
uses: julia-actions/setup-julia@v1
with:
version: 1.3.1
# BoardController testing
- name: Run Julia Tests
run: |
cd %GITHUB_WORKSPACE%\julia_package\brainflow
julia --project=. -e "import Pkg; Pkg.test()"
shell: cmd
- name: Cyton Windows Python Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_get_data.py --board-id 0 --serial-port
shell: cmd
- name: Cyton Windows Python Test Commands
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py python %GITHUB_WORKSPACE%\python_package\examples\tests\cyton_commands.py --serial-port
shell: cmd
- name: Cyton Multiboard Windows Python Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_multiboard_get_data.py --board-id 0 --serial-port
shell: cmd
- name: Cyton Windows Cpp Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py %GITHUB_WORKSPACE%\cpp_package\examples\get_data\build\Release\brainflow_get_data.exe --board-id 0 --serial-port
shell: cmd
- name: Cyton Windows C# Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py %GITHUB_WORKSPACE%\csharp_package\brainflow\examples\brainflow_get_data\bin\Release\net7.0\brainflow_get_data.exe --board-id 0 --serial-port
shell: cmd
- name: Synthetic Windows Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_get_data.py --board-id -1
shell: cmd
- name: Synthetic Windows Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=get_data
shell: cmd
- name: Synthetic Windows Rust Test Markers
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=markers
shell: cmd
- name: Synthetic Windows Cpp Test
run: .\cpp_package\examples\get_data\build\Release\brainflow_get_data.exe --board-id -1
shell: cmd
- name: Synthetic Windows C# Test
run: |
cd %GITHUB_WORKSPACE%\csharp_package\brainflow\examples\brainflow_get_data\bin\Release\net7.0\
brainflow_get_data.exe --board-id -1
shell: cmd
- name: Cyton Daisy Windows Python Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_get_data.py --board-id 2 --serial-port
shell: cmd
- name: Cyton Daisy Multiboard Windows Python Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_multiboard_get_data.py --board-id 2 --serial-port
shell: cmd
- name: Cyton Daisy Windows Cpp Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py %GITHUB_WORKSPACE%\cpp_package\examples\get_data\build\Release\brainflow_get_data.exe --board-id 2 --serial-port
shell: cmd
- name: Cyton Daisy Windows C# Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\cyton_windows.py %GITHUB_WORKSPACE%\csharp_package\brainflow\examples\brainflow_get_data\bin\Release\net7.0\brainflow_get_data.exe --board-id 2 --serial-port
shell: cmd
- name: Galea Windows Cpp Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\galea_udp.py %GITHUB_WORKSPACE%\cpp_package\examples\get_data\build\Release\brainflow_get_data.exe --board-id 3 --ip-address 127.0.0.1
shell: cmd
- name: Galea Windows C# Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\galea_udp.py %GITHUB_WORKSPACE%\csharp_package\brainflow\examples\brainflow_get_data\bin\Release\net7.0\brainflow_get_data.exe --board-id 3 --ip-address 127.0.0.1
shell: cmd
- name: FreeEEG32 Python Test
run: python %GITHUB_WORKSPACE%\emulator\brainflow_emulator\freeeeg32_windows.py python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_get_data.py --board-id 17 --serial-port
shell: cmd
# Signal Processing Testing
- name: Serialization Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=read_write_file
shell: cmd
- name: Denoising Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=denoising
shell: cmd
- name: Downsampling Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=downsampling
shell: cmd
- name: Filtering Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=signal_filtering
shell: cmd
- name: Transforms Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=transforms
shell: cmd
- name: Denoising Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\denoising.py
shell: cmd
- name: Serialization Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\serialization.py
shell: cmd
- name: Filtering Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\signal_filtering.py
shell: cmd
- name: Transforms Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\transforms.py
shell: cmd
- name: Downsampling Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\downsampling.py
shell: cmd
- name: CSP Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\csp.py
shell: cmd
- name: Windowing Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\windowing.py
shell: cmd
- name: BrainFlow to MNE Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\brainflow_to_mne.py
shell: cmd
- name: Denoising Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\denoising.exe
shell: cmd
- name: Downsampling Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\downsampling.exe
shell: cmd
- name: CSP Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\csp.exe
shell: cmd
- name: Windowing Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\windowing.exe
shell: cmd
- name: Transforms Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\transforms.exe
shell: cmd
- name: Filtering Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\signal_filtering.exe
shell: cmd
- name: Serialization Cpp Test
run: .\cpp_package\examples\signal_processing\build\Release\serialization.exe
shell: cmd
- name: ICA C# Test
run: .\csharp_package\brainflow\examples\ica\bin\Release\net7.0\ica.exe
shell: cmd
# Tests for MLModule
- name: EEG Metrics Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\eeg_metrics.py --board-id -1
shell: cmd
- name: EEG Metrics CI Python Test
run: python %GITHUB_WORKSPACE%\python_package\examples\tests\eeg_metrics_ci.py --board-id -1 --metric 2 --classifier 2 --model-file %GITHUB_WORKSPACE%\src\ml\train\logreg_mindfulness.onnx
shell: cmd
- name: EEG Metrics CI Cpp Test
run: .\cpp_package\examples\ml\build\Release\eeg_metrics_ci.exe --board-id -1 --metric 2 --classifier 2 --model-file %GITHUB_WORKSPACE%\src\ml\train\logreg_mindfulness.onnx
shell: cmd
- name: EEG Metrics CI Cpp x32 Test
run: .\cpp_package\examples\ml\build32\Release\eeg_metrics_ci.exe --board-id -1 --metric 2 --classifier 2 --model-file %GITHUB_WORKSPACE%\src\ml\train\logreg_mindfulness.onnx
shell: cmd
- name: EEG Metrics C# Test
run: .\csharp_package\brainflow\examples\eeg_metrics\bin\Release\net7.0\eeg_metrics.exe
shell: cmd
- name: EEG Metrics CI C# Test
run: .\csharp_package\brainflow\examples\eeg_metrics_ci\bin\Release\net7.0\eeg_metrics_ci.exe --board-id -1 --metric 2 --classifier 2 --model-file %GITHUB_WORKSPACE%\src\ml\train\logreg_mindfulness.onnx
shell: cmd
- name: EEG Metrics CI Rust Test
run: |
cd %GITHUB_WORKSPACE%\rust_package\brainflow
cargo run --example=eeg_metrics
shell: cmd
# Start Deploy Stage
- name: Install Python AWS Tools
run: |
python -m pip install awscli
shell: cmd
- name: Upload x86 Libs to AWS
if: ${{ github.event_name == 'push' && github.repository == 'brainflow-dev/brainflow' }}
run: |
aws s3 cp %GITHUB_WORKSPACE%\installed32\ s3://brainflow/%GITHUB_SHA%/win32 --recursive
shell: cmd
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Upload x64 Libs to AWS
if: ${{ github.event_name == 'push' && github.repository == 'brainflow-dev/brainflow' }}
run: |
aws s3 cp %GITHUB_WORKSPACE%\installed64\ s3://brainflow/%GITHUB_SHA%/win64 --recursive
shell: cmd
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}