Skip to content

Update CI Actions Versions #1908

Update CI Actions Versions

Update CI Actions Versions #1908

Workflow file for this run

name: PullRequest
on:
pull_request:
branches:
- main
jobs:
MinQtDynamic:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 3
matrix:
qt: [5.10.1]
os: [ubuntu-20.04, macos-11, windows-2019]
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Install Python 3.7 version
uses: actions/setup-python@v4
with:
python-version: '3.7'
architecture: 'x64'
- name: Install BrainFlow and LSL submodules
run: |
git submodule update --init src/applications/mne_scan/plugins/brainflowboard/brainflow
git submodule update --init src/applications/mne_scan/plugins/lsladapter/liblsl
- name: Install Qt (Linux|MacOS)
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-11')
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt }}
modules: qtcharts
- name: Install Qt (Windows)
if: matrix.os == 'windows-2019'
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt }}
arch: win64_msvc2017_64
modules: qtcharts
- name: Compile BrainFlow submodule (Windows)
if: matrix.os == 'windows-2019'
run: |
cd src\applications\mne_scan\plugins\brainflowboard\brainflow
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -A x64 -DMSVC_RUNTIME=dynamic -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_INSTALL_PREFIX="$env:GITHUB_WORKSPACE\applications\mne_scan\plugins\brainflowboard\brainflow\installed" ..
cmake --build . --target install --config Release
- name: Compile BrainFlow submodule (Linux|MacOS)
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-11')
run: |
cd src/applications/mne_scan/plugins/brainflowboard/brainflow
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=../installed -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
- name: Compile LSL submodule (Windows)
if: matrix.os == 'windows-2019'
run: |
cd src\applications\mne_scan\plugins\lsladapter\liblsl
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
cmake --build . --config Release --target install
- name: Compile LSL submodule (Linux|MacOS)
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-11')
run: |
cd src/applications/mne_scan/plugins/lsladapter/liblsl
mkdir build
cd build
cmake ..
cmake --build .
- name: Configure and compile MNE-CPP
run: |
./tools/build_project.bat all
- name: Deploy binaries
run: |
./tools/deploy.bat dynamic pack
MaxQtDynamic:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 3
matrix:
qt: [5.15.2]
os: [ubuntu-latest, macos-11, windows-2019]
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Install Python 3.7 version
uses: actions/setup-python@v4
with:
python-version: '3.7'
architecture: 'x64'
- name: Install BrainFlow and LSL submodules
run: |
git submodule update --init src/applications/mne_scan/plugins/brainflowboard/brainflow
git submodule update --init src/applications/mne_scan/plugins/lsladapter/liblsl
- name: Install Qt (Linux|MacOS)
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-11')
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt }}
modules: qtcharts
- name: Install Qt (Windows)
if: matrix.os == 'windows-2019'
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt }}
arch: win64_msvc2019_64
modules: qtcharts
- name: Compile BrainFlow submodule (Windows)
if: matrix.os == 'windows-2019'
run: |
cd src\applications\mne_scan\plugins\brainflowboard\brainflow
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -A x64 -DMSVC_RUNTIME=dynamic -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_INSTALL_PREFIX="$env:GITHUB_WORKSPACE\applications\mne_scan\plugins\brainflowboard\brainflow\installed" ..
cmake --build . --target install --config Release
- name: Compile BrainFlow submodule (Linux|MacOS)
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-11')
run: |
cd src/applications/mne_scan/plugins/brainflowboard/brainflow
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=../installed -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
- name: Compile LSL submodule (Windows)
if: matrix.os == 'windows-2019'
run: |
cd src\applications\mne_scan\plugins\lsladapter\liblsl
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
cmake --build . --config Release --target install
- name: Compile LSL submodule (Linux|MacOS)
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-11')
run: |
cd src/applications/mne_scan/plugins/lsladapter/liblsl
mkdir build
cd build
cmake ..
cmake --build .
- name: Configure and compile MNE-CPP
run: |
./tools/build_project.bat all
- name: Deploy binaries
run: |
./tools/deploy.bat dynamic pack
QtStatic:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 3
matrix:
os: [ubuntu-20.04, macos-11, windows-2019]
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Install Python 3.7 version
uses: actions/setup-python@v4
with:
python-version: '3.7'
architecture: 'x64'
- name: Install OpenGL (Linux)
if: matrix.os == 'ubuntu-20.04'
run: |
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update -q
sudo apt-get install build-essential libgl1-mesa-dev libicu55
- name: Install Qt (Linux)
if: matrix.os == 'ubuntu-20.04'
run: |
# Download the pre-built static version of Qt, which was created with the generateBinaries.yml workflow
wget -O qt5_5152_static_binaries_linux.tar.gz https://www.dropbox.com/s/tje7jp6tsn2dxdd/qt5_5152_static_binaries_linux.tar.gz?dl=0
mkdir ../Qt5_binaries
tar xvzf qt5_5152_static_binaries_linux.tar.gz -C ../ -P
- name: Install Qt (MacOS)
if: matrix.os == 'macos-11'
run: |
# Download the pre-built static version of Qt, which was created with the generateBinaries.yml workflow
wget -O qt5_5152_static_binaries_macos.tar.gz https://www.dropbox.com/s/ccigarxk40wlxq0/qt5_5152_static_binaries_macos.tar.gz?dl=1
tar xvzf qt5_5152_static_binaries_macos.tar.gz -P
- name: Install Qt (Windows)
if: matrix.os == 'windows-2019'
run: |
# Download the pre-built static version of Qt, which was created with the generateBinaries.yml workflow
Invoke-WebRequest https://www.dropbox.com/s/47s49smjg499gnm/qt5_5152_static_binaries_win.zip?dl=1 -OutFile .\qt5_5152_static_binaries_win.zip
expand-archive -path "qt5_5152_static_binaries_win.zip" -destinationpath "..\"
- name: Configure and compile MNE-CPP (Linux|MacOS)
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-11')
run: |
export QT_DIR="$(pwd)/../Qt5_binaries/lib/cmake/Qt5"
export Qt5_DIR="$(pwd)/../Qt5_binaries/lib/cmake/Qt5"
./tools/build_project.bat static all
- name: Configure and compile MNE-CPP (Windows)
if: matrix.os == 'windows-2019'
run: |
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
Get-Content "$env:temp\vcvars.txt" | Foreach-Object { if ($_ -match "^(.*?)=(.*)$") { Set-Content "env:\$($matches[1])" $matches[2] } }
$env:QT_DIR += "$PWD\..\Qt5_binaries\lib\cmake\Qt5"
$env:Qt5_DIR += "$PWD\..\Qt5_binaries\lib\cmake\Qt5"
./tools/build_project.bat static all
- name: Deploy binaries
run: |
./tools/deploy.bat static pack
Tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 3
matrix:
os: [ubuntu-20.04, macos-11, windows-2019]
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Clone mne-cpp test data
run: git clone https://github.com/mne-tools/mne-cpp-test-data.git resources/data/mne-cpp-test-data
- name: Install Python 3.7 version
uses: actions/setup-python@v4
with:
python-version: '3.7'
architecture: 'x64'
- name: Install Codecov
if: matrix.os == 'ubuntu-20.04'
run: |
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
echo "${pwd}" >> $GITHUB_PATH
- name: Install Qt (Linux|MacOS)
if: (matrix.os == 'ubuntu-20.04') || (matrix.os == 'macos-11')
uses: jurplel/install-qt-action@v3
with:
version: 5.15.2
modules: qtcharts
- name: Install Qt (Windows)
if: matrix.os == 'windows-2019'
uses: jurplel/install-qt-action@v3
with:
version: 5.15.2
arch: win64_msvc2019_64
modules: qtcharts
- name: Configure and compile MNE-CPP
if: (matrix.os == 'macos-11') || (matrix.os == 'windows-2019')
run: |
./tools/build_project.bat all
- name: Configure and compile MNE-CPP
if: matrix.os == 'ubuntu-20.04'
run: |
./tools/build_project.bat coverage all
- name: Run tests (Linux)
if: matrix.os == 'ubuntu-20.04'
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
QTEST_FUNCTION_TIMEOUT: 900000
run: |
./tools/test_all.bat verbose withCoverage
- name: Run tests (MacOS)
if: matrix.os == 'macos-11'
env:
QTEST_FUNCTION_TIMEOUT: 900000
run: |
./tools/test_all.bat verbose
- name: Run tests (Windows)
if: matrix.os == 'windows-2019'
env:
QTEST_FUNCTION_TIMEOUT: 900000
run: |
./tools/test_all.bat Release verbose
Doxygen:
runs-on: ubuntu-20.04
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Install Qt Dev Tools, Doxygen and Graphviz
run: |
sudo apt-get update -q
sudo apt-get install -q qttools5-dev-tools doxygen graphviz
- name: Run Doxygen and package result
run: |
cd doc/doxygen
doxygen mne-cpp_doxyfile