feat(gui, config, text_editor): allow to use your prefered text edito… #4529
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: "C/C++ CI" | |
on: [push] | |
jobs: | |
Sequoia: | |
name: macOS Sequoia | |
runs-on: macos-15 | |
timeout-minutes: 120 | |
steps: | |
- name: install dependencies | |
run: | | |
brew --version | |
brew cleanup | |
brew install coreutils | |
brew install zlib | |
brew install libtool | |
brew install automake | |
brew install libffi | |
brew install icu4c | |
brew info open-mpi | |
brew install openmpi | |
brew install pkgconf | |
brew install gettext | |
brew link gettext --force | |
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.zshrc | |
source ~/.zshrc | |
brew install boost | |
brew install libxml2 | |
brew upgrade cmake | |
brew install fftw | |
brew install portaudio | |
brew install libsndfile | |
brew install taglib | |
brew install libgit2 | |
brew reinstall hdf5 | |
brew install libmatio | |
brew install eigen | |
brew install libomp | |
brew link libomp --force | |
brew install openblas | |
brew install qt | |
brew link icu4c --force | |
brew install numpy | |
brew install tbb | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python3 $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: | | |
export HDF5_DIR=$HOMEBREW_PREFIX/opt/hdf5 | |
cmake -DCMAKE_BUILD_TYPE=Release -DWITHOUT_SLICOT_MODULE=ON -G "Unix Makefiles" . | |
- name: make | |
run: cmake --build . -- -j$(nproc) | |
- name: get module skeleton | |
run: cmake --build . -- get_module_skeleton | |
- name: build help | |
run: | | |
cmake --build . -- buildhelp | |
- name: package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo make install | |
- name: Setup Python environment for Nelson | |
run: $GITHUB_WORKSPACE/bin/macOS/nelson --cli -f $GITHUB_WORKSPACE/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: all benchs | |
run: | | |
export OMP_NUM_THREADS=1 | |
cmake --build . -- benchs_all | |
- name: all tests | |
run: | | |
cmake --build . -- tests_all | |
- name: Copy artifacts | |
run: mkdir artifacts && mv tests_all*.* artifacts && mv benchs_all*.* artifacts && mv Nelson-*.tar.gz artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-macOS-Sequoia-arm64-${{ steps.json_version.outputs.packageVersion }}.${{ github.run_number }} | |
path: artifacts/ | |
Sonoma: | |
name: macOS Sonoma | |
runs-on: macos-14 | |
timeout-minutes: 120 | |
steps: | |
- name: install dependencies | |
run: | | |
brew --version | |
brew cleanup | |
brew install coreutils | |
brew install zlib | |
brew install libtool | |
brew install automake | |
brew install libffi | |
brew install icu4c | |
brew info open-mpi | |
brew install openmpi | |
brew install pkgconf | |
brew install gettext | |
brew link gettext --force | |
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.zshrc | |
source ~/.zshrc | |
brew install boost | |
brew install libxml2 | |
brew upgrade cmake | |
brew install fftw | |
brew install portaudio | |
brew install libsndfile | |
brew install taglib | |
brew install libgit2 | |
brew reinstall hdf5 | |
brew install libmatio | |
brew install eigen | |
brew install libomp | |
brew link libomp --force | |
brew install openblas | |
brew install qt | |
brew link icu4c --force | |
brew install numpy | |
brew install tbb | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python3 $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: | | |
export HDF5_DIR=$HOMEBREW_PREFIX/opt/hdf5 | |
cmake -DCMAKE_BUILD_TYPE=Release -DWITHOUT_SLICOT_MODULE=ON -G "Unix Makefiles" . | |
- name: make | |
run: cmake --build . -- -j$(nproc) | |
- name: get module skeleton | |
run: cmake --build . -- get_module_skeleton | |
- name: build help | |
run: | | |
cmake --build . -- buildhelp | |
- name: package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo make install | |
- name: Setup Python environment for Nelson | |
run: $GITHUB_WORKSPACE/bin/macOS/nelson --cli -f $GITHUB_WORKSPACE/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: all benchs | |
run: | | |
export OMP_NUM_THREADS=1 | |
cmake --build . -- benchs_all | |
- name: all tests | |
run: | | |
cmake --build . -- tests_all | |
- name: Copy artifacts | |
run: mkdir artifacts && mv tests_all*.* artifacts && mv benchs_all*.* artifacts && mv Nelson-*.tar.gz artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-macOS-sonoma-arm64-${{ steps.json_version.outputs.packageVersion }}.${{ github.run_number }} | |
path: artifacts/ | |
Ventura: | |
name: macOS X Ventura | |
runs-on: macos-13 | |
timeout-minutes: 120 | |
steps: | |
- name: install dependencies | |
run: | | |
brew --version | |
brew cleanup | |
brew install coreutils | |
brew install zlib | |
brew install libtool | |
brew install automake | |
brew install libffi | |
brew install icu4c | |
brew info open-mpi | |
brew install openmpi | |
brew install pkg-config | |
brew install pkgconfig | |
brew install gettext | |
brew link gettext --force | |
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.zshrc | |
source ~/.zshrc | |
brew install boost | |
brew install libxml2 | |
brew upgrade cmake | |
brew install fftw | |
brew install portaudio | |
brew install libsndfile | |
brew install taglib | |
brew install libgit2 | |
brew install hdf5 | |
brew install libmatio | |
brew install eigen | |
brew install libomp | |
brew link libomp --force | |
brew install openblas | |
brew link icu4c --force | |
brew install tbb | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: "6.4.2" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: | | |
cmake -DCMAKE_BUILD_TYPE=Release -DWITHOUT_SLICOT_MODULE=ON -DWITHOUT_FFTW_MODULE=ON -G "Unix Makefiles" . | |
- name: make | |
run: cmake --build . -- -j$(nproc) | |
- name: get module skeleton | |
run: cmake --build . -- get_module_skeleton | |
- name: build help | |
run: | | |
cmake --build . -- buildhelp | |
- name: package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo make install | |
- name: all benchs | |
run: | | |
export OMP_NUM_THREADS=1 | |
cmake --build . -- benchs_all | |
- name: all tests | |
run: | | |
cmake --build . -- tests_all | |
- name: Copy artifacts | |
run: mkdir artifacts && mv tests_all*.* artifacts && mv benchs_all*.* artifacts && mv Nelson-*.tar.gz artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-macOS-ventura-amd64-${{ steps.json_version.outputs.packageVersion }}.${{ github.run_number }} | |
path: artifacts/ | |
Noble_Numbat: | |
name: Ubuntu-24.04 Noble Numbat (OpenBLAS) | |
runs-on: ubuntu-24.04 | |
timeout-minutes: 120 | |
steps: | |
- name: install dependencies | |
run: | | |
sudo apt-get update --fix-missing | |
sudo apt upgrade; | |
sudo apt -y install build-essential; | |
sudo apt -y install apt-transport-https ca-certificates gnupg software-properties-common wget ; | |
sudo apt -y install ninja-build; | |
sudo apt -y install xvfb; | |
sudo apt -y install libopenmpi-dev; | |
sudo apt -y install autotools-dev; | |
sudo apt -y install libtool; | |
sudo apt -y install automake; | |
sudo apt -y install openmpi-bin; | |
sudo apt -y install gettext; | |
sudo apt -y install pkg-config; | |
sudo apt -y install libffi-dev; | |
sudo apt -y install libicu-dev; | |
sudo apt -y install libxml2-dev; | |
sudo apt -y install libopenblas-openmp-dev; | |
sudo apt -y install liblapack-dev; | |
sudo apt -y install liblapacke-dev; | |
sudo apt -y install libfftw3-dev; | |
sudo apt -y install libasound-dev; | |
sudo apt -y install portaudio19-dev; | |
sudo apt -y install libsndfile1-dev; | |
sudo apt -y install libtag1-dev; | |
sudo apt -y install alsa-utils; | |
sudo apt -y install libslicot-dev; | |
sudo apt -y install libsqlite3-dev; | |
sudo apt -y install libgl-dev; | |
sudo apt -y install hdf5-tools; | |
sudo apt -y install zlib1g-dev; | |
sudo apt -y install libcurl4-openssl-dev; | |
sudo apt -y install libgit2-dev; | |
sudo apt -y install libboost-all-dev; | |
sudo apt -y install libeigen3-dev; | |
sudo apt -y install libhdf5-dev; | |
sudo apt -y install libmatio-dev; | |
sudo apt -y install qt6-base-dev; | |
sudo apt -y install libqt6svg6-dev; | |
sudo apt -y install qt6-declarative-dev; | |
sudo apt -y install qt6-documentation-tools; | |
sudo apt -y install qml6-module-qtquick; | |
sudo apt -y install qml6-module-qtquick-templates; | |
sudo apt -y install qml6-module-qtquick-controls; | |
sudo apt -y install qml6-module-qtquick-window; | |
sudo apt -y install qml6-module-qtquick-dialogs; | |
sudo apt -y install qml6-module-qtqml-workerscript; | |
sudo apt -y install qml6-module-qtquick-layouts; | |
sudo apt -y install qt6-tools-dev; | |
sudo apt -y install python3; | |
sudo apt -y install python3-numpy; | |
sudo apt -y install libtbb-dev; | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: cmake -DCMAKE_BUILD_TYPE=Release -DQTDIR="/usr/lib/qt6" -G "Ninja" . | |
- name: make with Ninja | |
run: cmake --build . -- -j $(nproc) | |
- name: get module skeleton | |
run: | | |
cmake --build . -- get_module_skeleton | |
- name: build help | |
run: | | |
cmake --build . -- buildhelp | |
- name: minimal tests | |
run: cmake --build . -- tests_minimal | |
- name: package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo ninja install | |
- name: Setup Python environment for Nelson | |
run: nelson --cli -f $GITHUB_WORKSPACE/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: all benchs | |
run: | | |
xvfb-run -a ninja benchs_all | |
- name: all tests | |
run: | | |
xvfb-run -a ninja tests_all | |
- name: Copy artifacts | |
run: mkdir artifacts && mv tests_all*.* artifacts && mv benchs_all*.* artifacts && mv nelson-*.deb artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-linux-ubuntu-24-04-amd64-${{steps.json_version.outputs.packageVersion}}.${{ github.run_number }} | |
path: artifacts/ | |
Jammy: | |
name: Ubuntu-22.04 Jammy (OpenBLAS) | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 120 | |
steps: | |
- name: install dependencies | |
run: | | |
sudo apt-mark hold grub-efi-amd64-signed | |
sudo apt-get update --fix-missing | |
sudo apt upgrade; | |
sudo apt -y install build-essential; | |
sudo apt -y install apt-transport-https ca-certificates gnupg software-properties-common wget ; | |
sudo apt -y install ninja-build; | |
sudo apt -y install xvfb; | |
sudo apt -y install libopenmpi-dev; | |
sudo apt -y install autotools-dev; | |
sudo apt -y install libtool; | |
sudo apt -y install automake; | |
sudo apt -y install openmpi-bin; | |
sudo apt -y install gettext; | |
sudo apt -y install pkg-config; | |
sudo apt -y install libffi-dev; | |
sudo apt -y install libicu-dev; | |
sudo apt -y install libxml2-dev; | |
sudo apt -y install libopenblas-openmp-dev; | |
sudo apt -y install liblapack-dev; | |
sudo apt -y install liblapacke-dev; | |
sudo apt -y install fftw3; | |
sudo apt -y install fftw3-dev; | |
sudo apt -y install libasound-dev; | |
sudo apt -y install portaudio19-dev; | |
sudo apt -y install libsndfile1-dev; | |
sudo apt -y install libtag1-dev; | |
sudo apt -y install alsa-utils; | |
sudo apt -y install libslicot-dev; | |
sudo apt -y install libsqlite3-dev; | |
sudo apt -y install libgl-dev; | |
sudo apt -y install hdf5-tools; | |
sudo apt -y install zlib1g-dev; | |
sudo apt -y install libcurl4-openssl-dev; | |
sudo apt -y install libgit2-dev; | |
sudo apt -y install libboost-all-dev; | |
sudo apt -y install libeigen3-dev; | |
sudo apt -y install libhdf5-dev; | |
sudo apt -y install libmatio-dev; | |
sudo apt -y install qt6-base-dev; | |
sudo apt -y install libqt6svg6-dev; | |
sudo apt -y install qt6-declarative-dev; | |
sudo apt -y install qt6-documentation-tools; | |
sudo apt -y install qml6-module-qtquick; | |
sudo apt -y install qml6-module-qtquick-templates; | |
sudo apt -y install qml6-module-qtquick-controls; | |
sudo apt -y install qml6-module-qtquick-window; | |
sudo apt -y install qml6-module-qtquick-dialogs; | |
sudo apt -y install qml6-module-qtqml-workerscript; | |
sudo apt -y install qml6-module-qtquick-layouts; | |
sudo apt -y install qt6-tools-dev; | |
sudo apt -y install python3; | |
sudo apt -y install python3-numpy; | |
sudo apt -y install libtbb-dev; | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: cmake -DCMAKE_BUILD_TYPE=Release -DQTDIR="/usr/lib/qt6" -G "Ninja" . | |
- name: make with Ninja | |
run: cmake --build . -- -j $(nproc) | |
- name: get module skeleton | |
run: | | |
cmake --build . -- get_module_skeleton | |
- name: build help | |
run: | | |
cmake --build . -- buildhelp | |
- name: minimal tests | |
run: cmake --build . -- tests_minimal | |
- name: package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo ninja install | |
- name: Setup Python environment for Nelson | |
run: nelson --cli -f $GITHUB_WORKSPACE/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: all benchs | |
run: | | |
xvfb-run -a ninja benchs_all | |
- name: all tests | |
run: | | |
xvfb-run -a ninja tests_all | |
- name: Copy artifacts | |
run: mkdir artifacts && mv tests_all*.* artifacts && mv benchs_all*.* artifacts && mv nelson-*.deb artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-linux-ubuntu-22-04-amd64-${{steps.json_version.outputs.packageVersion}}.${{ github.run_number }} | |
path: artifacts/ | |
Focal: | |
name: Ubuntu-20.04 Focal (BLAS - LAPACK) | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 120 | |
steps: | |
- name: install dependencies | |
run: | | |
sudo apt update; | |
sudo apt -y install apt-transport-https ca-certificates gnupg software-properties-common wget ; | |
sudo apt -y autoremove cmake-data; | |
sudo apt -y remove --purge --auto-remove cmake; | |
sudo rm -rf /usr/local/bin/cmake | |
version=3.16 | |
build=2 | |
mkdir ~/temp | |
cd ~/temp | |
wget https://cmake.org/files/v$version/cmake-$version.$build-Linux-x86_64.sh | |
sudo mkdir /opt/cmake | |
sudo sh cmake-$version.$build-Linux-x86_64.sh --prefix=/opt/cmake --skip-license | |
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake | |
cmake --version | |
sudo apt -y install ninja-build; | |
sudo apt -y install xvfb; | |
sudo apt -y install libopenmpi-dev; | |
sudo apt -y install autotools-dev; | |
sudo apt -y install libtool; | |
sudo apt -y install automake; | |
sudo apt -y install openmpi-bin; | |
sudo apt -y install gettext; | |
sudo apt -y install pkg-config; | |
sudo apt -y install libffi-dev; | |
sudo apt -y install libicu-dev; | |
sudo apt -y install libxml2-dev; | |
sudo apt -y install liblapack-dev; | |
sudo apt -y install liblapacke-dev; | |
sudo apt -y install fftw3; | |
sudo apt -y install fftw3-dev; | |
sudo apt -y install libasound-dev; | |
sudo apt -y install portaudio19-dev; | |
sudo apt -y install libsndfile1-dev; | |
sudo apt -y install libtag1-dev; | |
sudo apt -y install alsa-utils; | |
sudo apt -y install libslicot-dev; | |
sudo apt -y install libsqlite3-dev; | |
sudo apt -y install libgl-dev; | |
sudo apt -y install hdf5-tools; | |
sudo apt -y install zlib1g-dev; | |
sudo apt -y install libcurl4-openssl-dev; | |
sudo apt -y install libgit2-dev; | |
sudo apt -y install libtbb-dev; | |
sudo add-apt-repository --yes ppa:beineri/opt-qt-5.15.4-focal; | |
sudo apt update; | |
sudo apt -y install qt515base qt515svg qt515tools qt515quickcontrols2 qt515quickcontrols qt515declarative qt515wayland; | |
sudo apt-get install -y libboost-all-dev; | |
git clone https://gitlab.com/libeigen/eigen.git /tmp/eigen; | |
mkdir /tmp/eigen-build; | |
cd /tmp/eigen; | |
git checkout 3.4; | |
cd -; | |
cd /tmp/eigen-build; | |
cmake . /tmp/eigen; | |
make -j4; | |
sudo make install; | |
cd -; | |
git clone https://github.com/HDFGroup/hdf5.git /tmp/hdf5-1_10_5; | |
cd /tmp/hdf5-1_10_5; | |
git checkout hdf5-1_10_5; | |
./configure --quiet --prefix=/usr/local --enable-shared --disable-deprecated-symbols --disable-hl --disable-strict-format-checks --disable-memory-alloc-sanity-check --disable-instrument --disable-parallel --disable-trace --disable-asserts --with-pic --with-default-api-version=v110 CFLAGS="-w"; | |
sudo make install -C src; | |
git clone https://github.com/tbeu/matio /tmp/matio; | |
cd /tmp/matio; | |
git checkout v1.5.16; | |
cd /tmp/matio; | |
./autogen.sh; | |
./configure --enable-shared --enable-mat73=yes --enable-extended-sparse=no --with-pic --with-hdf5=/usr/local; | |
make; | |
sudo make install; | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10.13" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: source /opt/qt515/bin/qt515-env.sh && cmake -DWITHOUT_PYTHON_ENGINE_MODULE=ON -DCMAKE_BUILD_TYPE=Release -G "Ninja" . | |
- name: make with Ninja | |
run: cmake --build . -- -j $(nproc) | |
- name: get module skeleton | |
run: cmake --build . -- get_module_skeleton | |
- name: build help | |
run: cmake --build . -- buildhelp | |
- name: minimal tests | |
run: cmake --build . -- tests_minimal | |
- name: package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo ninja install | |
- name: all benchs | |
run: source /opt/qt515/bin/qt515-env.sh && xvfb-run -a ninja benchs_all | |
- name: all tests | |
run: source /opt/qt515/bin/qt515-env.sh && xvfb-run -a ninja tests_all | |
- name: Copy artifacts | |
run: mkdir artifacts && mv tests_all*.* artifacts && mv benchs_all*.* artifacts && mv Nelson-*.tar.gz artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-linux-ubuntu-20-04-amd64-${{steps.json_version.outputs.packageVersion}}.${{ github.run_number }} | |
path: artifacts/ | |
ArchLinux: | |
runs-on: ubuntu-latest | |
container: archlinux:latest | |
timeout-minutes: 120 | |
steps: | |
- name: Install dependencies | |
run: | | |
pacman -Syu --noconfirm | |
pacman -S base-devel --noconfirm | |
pacman -S git --noconfirm | |
pacman -S gcc binutils glibc --noconfirm | |
pacman -S inetutils --noconfirm | |
pacman -S gawk --noconfirm | |
pacman -S m4 --noconfirm | |
pacman -S pkg-config --noconfirm | |
pacman -S boost-libs boost --noconfirm | |
pacman -S cmake --noconfirm | |
pacman -S libffi --noconfirm | |
pacman -S icu --noconfirm | |
pacman -S qt5-base --noconfirm | |
pacman -S qt5-svg --noconfirm | |
pacman -S qt5-tools --noconfirm | |
pacman -S qt5-quickcontrols --noconfirm | |
pacman -S libxml2 --noconfirm | |
pacman -S gcc --noconfirm | |
pacman -S make --noconfirm | |
pacman -S blas --noconfirm | |
pacman -S lapack --noconfirm | |
pacman -S lapacke --noconfirm | |
pacman -S fftw --noconfirm | |
pacman -S openmpi --noconfirm | |
pacman -S hdf5 --noconfirm | |
pacman -S taglib --noconfirm | |
pacman -S portaudio --noconfirm | |
pacman -S libsndfile --noconfirm | |
pacman -S zlib --noconfirm | |
pacman -S curl --noconfirm | |
pacman -S libgit2 --noconfirm | |
pacman -S python3 --noconfirm | |
pacman -S python-numpy --noconfirm | |
pacman -S python-pip --noconfirm | |
pacman -S eigen --noconfirm | |
pacman -S hdf5 --noconfirm | |
pacman -S libmatio --noconfirm | |
pacman -S onetbb --noconfirm | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Trust repo directory | |
run: | | |
git config --global --add safe.directory /__w/nelson/nelson | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: python3 $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: cmake -DCMAKE_BUILD_TYPE=Release -DWITHOUT_SLICOT_MODULE=ON -G "Unix Makefiles" . | |
- name: Make | |
run: cmake --build . -- -j $(nproc) | |
- name: Download module skeleton | |
run: cmake --build . -- get_module_skeleton | |
- name: Build help | |
run: cmake --build . -- buildhelp | |
- name: Minimal tests | |
run: cmake --build . -- tests_minimal | |
- name: Make package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo cmake --build . -- install | |
- name: Setup Python environment for Nelson | |
run: nelson --cli -f $GITHUB_WORKSPACE/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: Benchs | |
run: cmake --build . -- benchs_all_no_display | |
- name: Tests | |
run: | | |
export OMPI_ALLOW_RUN_AS_ROOT=1 | |
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 | |
cmake --build . -- tests_all_no_display | |
Fedora: | |
runs-on: ubuntu-latest | |
container: fedora:41 | |
timeout-minutes: 120 | |
steps: | |
- name: Install dependencies | |
run: | | |
dnf update -y | |
dnf upgrade -y | |
dnf install -y which | |
dnf install -y hostname | |
dnf install -y git | |
dnf install -y make | |
dnf install -y libtool | |
dnf install -y gcc | |
dnf install -y gcc-c++ | |
dnf install -y autoconf | |
dnf install -y automake | |
dnf install -y openmpi-devel | |
dnf install -y gettext | |
dnf install -y pkg-config | |
dnf install -y cmake | |
dnf install -y libffi-devel | |
dnf install -y libicu-devel | |
dnf install -y libxml2-devel | |
dnf install -y lapack-devel | |
dnf install -y fftw3-devel | |
dnf install -y portaudio-devel | |
dnf install -y libsndfile-devel | |
dnf install -y jack-audio-connection-kit-devel | |
dnf install -y taglib-devel | |
dnf install -y qt6-qtbase-devel | |
dnf install -y qt6-qtdeclarative-devel | |
dnf install -y qt6-qtbase-mysql | |
dnf install -y qt6-qtbase-odbc | |
dnf install -y qt6-qtbase-postgresql | |
dnf install -y qt6-doctools | |
dnf install -y qt6-qtsvg-devel | |
dnf install -y qt6-qtquickcontrols2 | |
dnf install -y qt6-qttools | |
dnf install -y qt6-qttools-libs-help | |
dnf install -y qt6-qttools-devel | |
dnf install -y boost-devel | |
dnf install -y zlib-devel | |
dnf install -y curl-devel | |
dnf install -y libgit2-devel | |
dnf install -y matio-devel | |
dnf install -y hdf5-devel | |
dnf install -y eigen3-devel | |
dnf install -y python3-devel | |
dnf install -y python3-numpy | |
dnf install -y tbb-devel | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python3 $GITHUB_WORKSPACE/tools/update_version/update_version.py | |
- name: CMake | |
run: | | |
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH | |
export PATH=/usr/lib64/openmpi/bin:$PATH | |
cmake -DCMAKE_BUILD_TYPE=Release -DWITHOUT_SLICOT_MODULE=ON -DWITHOUT_MPI_MODULE=ON -G "Unix Makefiles" . | |
- name: Make | |
run: | | |
export QTDIR_BINARIES="/usr/lib64/qt6/bin/" | |
cmake --build . -- -j $(nproc) | |
- name: Download module skeleton | |
run: cmake --build . -- get_module_skeleton | |
- name: Build help | |
run: cmake --build . -- buildhelp | |
- name: Minimal tests | |
run: | | |
cmake --build . -- tests_minimal | |
- name: Make package | |
run: cmake --build . -- package | |
- name: Install | |
run: sudo cmake --build . -- install | |
- name: Setup Python environment for Nelson | |
run: | | |
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH | |
export PATH=/usr/lib64/openmpi/bin:$PATH | |
nelson --cli -f $GITHUB_WORKSPACE/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: Benchs | |
run: cmake --build . -- benchs_all_no_display | |
- name: Tests | |
run: | | |
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH | |
export PATH=/usr/lib64/openmpi/bin:$PATH | |
export OMPI_ALLOW_RUN_AS_ROOT=1 | |
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 | |
cmake --build . -- tests_all_no_display | |
Windows_win32: | |
name: Windows 32 bits | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: cmd | |
timeout-minutes: 120 | |
steps: | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13.0" | |
architecture: "x86" | |
- name: Install Inno-setup | |
run: | | |
choco install InnoSetup | |
- name: Install MS-MPI | |
run: | | |
$null = mkdir c:/install | |
(new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", "C:\install\MSMpiSetup.exe") | |
C:/install/MSMpiSetup.exe -unattend -minimal | |
shell: powershell | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python %GITHUB_WORKSPACE%/tools/update_version/update_version.py | |
- name: Install Qt 5.15.2 | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: "5.15.2" | |
host: "windows" | |
target: "desktop" | |
arch: "win32_msvc2019" | |
dir: "C:/install/QT5/" | |
install-deps: "true" | |
# modules: "qtwebengine" | |
cache: "false" | |
setup-python: "false" | |
- name: Install dependencies | |
run: | | |
set QTDIR32=C:\install\QT5\Qt\5.15.2\msvc2019 | |
set QTDIR=%QTDIR32% | |
cd .. | |
git clone https://github.com/nelson-lang/nelson-thirdparty-win32.git | |
cd nelson-thirdparty-win32 | |
install.bat | |
remove_debug.bat | |
cd .. | |
- name: Build Nelson | |
run: | | |
set QTDIR32=C:\install\QT5\Qt\5.15.2\msvc2019 | |
set QTDIR=%QTDIR32% | |
SET PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\current\Bin\;C:\Program Files (x86)\Inno Setup 6;%PATH% | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 | |
cd %GITHUB_WORKSPACE% | |
msbuild nelson.sln /p:Configuration=Release /p:Platform=win32 /target:"NelSon-gui" /m:4 /p:PreferredToolArchitecture=x64 | |
- name: Set Default Python Environment for Nelson | |
run: | | |
%GITHUB_WORKSPACE%/bin/win32/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: Copy Python in Nelson distribution | |
run: | | |
xcopy %Python_ROOT_DIR% %GITHUB_WORKSPACE%\modules\python_engine\thirdparty\python /E /I /Y | |
del %GITHUB_WORKSPACE%\modules\python_engine\thirdparty\python\python-3*.exe | |
- name: Download module skeleton | |
run: | | |
%GITHUB_WORKSPACE%/bin/win32/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/clone_module_skeleton/clone.m | |
- name: Build help | |
run: | | |
%GITHUB_WORKSPACE%/bin/win32/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/buildhelp/buildhelp.m | |
- name: Inno setup | |
run: | | |
%GITHUB_WORKSPACE%/bin/win32/nelson-cli --noipc --quiet -e run('%GITHUB_WORKSPACE%/tools/innosetup/innosetup.m');exit" | |
iscc "%GITHUB_WORKSPACE%/tools/innosetup/Nelson.iss" | |
- name: Install Nelson with installer | |
run: | | |
%GITHUB_WORKSPACE%/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%-x86-32.exe /SP- /VERYSILENT /ALLUSERS /DIR="c:/install/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%" | |
- name: Creates artifacts directory | |
run: | | |
$null = mkdir %GITHUB_WORKSPACE%/artifacts | |
shell: powershell | |
- name: Zip Nelson install directory | |
run: | | |
"C:/Program Files/7-Zip/7z" a -tzip -mx7 %GITHUB_WORKSPACE%/artifacts/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%-x86-32.zip c:/install/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER% | |
- name: Tests moved in an long path name with space on windows | |
run: | | |
mv "c:/install/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%" "c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%" | |
- name: Benchs | |
run: | | |
set OMP_NUM_THREADS=1 | |
set NELSON_TERM_IS_UNICODE_SUPPORTED=TRUE | |
set PATH=C:\Program Files\Microsoft MPI\Bin;%PATH% | |
set TESTS_RESULT_DIR=%GITHUB_WORKSPACE%/artifacts | |
"c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/bin/win32/nelson-cli" --noipc --quiet -f "c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/tools/benchs_all/runbenchs_all.m" | |
- name: Tests | |
run: | | |
set NELSON_TERM_IS_UNICODE_SUPPORTED=TRUE | |
set PATH=C:\Program Files\Microsoft MPI\Bin;%PATH% | |
set TESTS_RESULT_DIR=%GITHUB_WORKSPACE%/artifacts | |
"c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/bin/win32/nelson-cli" --noipc --quiet -f "c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/tools/tests_all/runtests_all.m" | |
- name: Copy installer in artifacts directory | |
run: | | |
mv Nelson-*.exe artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-windows-win32-${{ steps.json_version.outputs.packageVersion }}.${{ github.run_number }} | |
path: artifacts/ | |
Windows_win64: | |
name: Windows 64 bits | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: cmd | |
timeout-minutes: 120 | |
steps: | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Install Qt 6.8.0 | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: "6.8.0" | |
host: "windows" | |
target: "desktop" | |
arch: "win64_msvc2022_64" | |
dir: "C:/install/QT6/" | |
install-deps: "true" | |
# modules: "qtwebengine" | |
cache: "false" | |
setup-python: "false" | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13.0" | |
- name: Install Inno-setup | |
run: | | |
choco install InnoSetup | |
- name: Install MS-MPI | |
run: | | |
(new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", "C:\install\MSMpiSetup.exe") | |
C:/install/MSMpiSetup.exe -unattend -minimal | |
shell: powershell | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get package version | |
uses: myrotvorets/[email protected] | |
id: json_version | |
- name: Update version | |
run: | | |
python %GITHUB_WORKSPACE%/tools/update_version/update_version.py | |
- name: Install dependencies | |
run: | | |
set QTDIR64=C:\install\QT6\Qt\6.8.0\msvc2022_64 | |
set QTDIR=%QTDIR64% | |
cd .. | |
git clone https://github.com/nelson-lang/nelson-thirdparty-x64.git | |
cd nelson-thirdparty-x64 | |
install.bat | |
remove_debug.bat | |
cd .. | |
- name: Build Nelson | |
run: | | |
set QTDIR64=C:\install\QT6\Qt\6.8.0\msvc2022_64 | |
set QTDIR=%QTDIR64% | |
SET PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\current\Bin\;C:\Program Files (x86)\Inno Setup 6;%PATH% | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
cd %GITHUB_WORKSPACE% | |
msbuild nelson.sln /p:Configuration=Release /p:Platform=x64 /target:"NelSon-gui" /m:4 /p:PreferredToolArchitecture=x64 | |
- name: Set Default Python Environment for Nelson | |
run: | | |
%GITHUB_WORKSPACE%/bin/x64/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/python_environment_CI/configurePythonEnvironment.m | |
- name: Copy Python in Nelson distribution | |
run: | | |
xcopy %Python_ROOT_DIR% %GITHUB_WORKSPACE%\modules\python_engine\thirdparty\python /E /I /Y | |
del %GITHUB_WORKSPACE%\modules\python_engine\thirdparty\python\python-3*-amd64.exe | |
- name: Download module skeleton | |
run: | | |
%GITHUB_WORKSPACE%/bin/x64/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/clone_module_skeleton/clone.m | |
- name: Build help | |
run: | | |
%GITHUB_WORKSPACE%/bin/x64/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/buildhelp/buildhelp.m | |
- name: Minimal tests | |
run: | | |
set NELSON_TERM_IS_UNICODE_SUPPORTED=TRUE | |
%GITHUB_WORKSPACE%/bin/x64/nelson-cli --noipc --quiet -f %GITHUB_WORKSPACE%/tools/tests_minimal/runtests_minimal.m | |
- name: Inno setup | |
run: | | |
%GITHUB_WORKSPACE%/bin/x64/nelson-cli --noipc --quiet -e run('%GITHUB_WORKSPACE%/tools/innosetup/innosetup.m');exit" | |
iscc "%GITHUB_WORKSPACE%/tools/innosetup/Nelson.iss" | |
- name: Install Nelson with installer | |
run: | | |
%GITHUB_WORKSPACE%/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%-x86-64.exe /SP- /VERYSILENT /ALLUSERS /DIR="c:/install/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%" | |
- name: creates artifacts directory | |
run: | | |
$null = mkdir %GITHUB_WORKSPACE%/artifacts | |
shell: powershell | |
- name: Zip Nelson install directory | |
run: | | |
"C:/Program Files/7-Zip/7z" a -tzip -mx7 %GITHUB_WORKSPACE%/artifacts/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%-x86-64.zip c:/install/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER% | |
- name: Tests moved in an long path name with space on windows | |
run: | | |
mv "c:/install/Nelson-${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%" "c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%" | |
- name: Benchs | |
run: | | |
set NELSON_TERM_IS_UNICODE_SUPPORTED=TRUE | |
set PATH=C:\Program Files\Microsoft MPI\Bin;%PATH% | |
set TESTS_RESULT_DIR=%GITHUB_WORKSPACE%/artifacts | |
"c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/bin/x64/nelson-cli" --noipc --quiet -f "c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/tools/benchs_all/runbenchs_all.m" | |
- name: Tests | |
run: | | |
set NELSON_TERM_IS_UNICODE_SUPPORTED=TRUE | |
set PATH=C:\Program Files\Microsoft MPI\Bin;%PATH% | |
set TESTS_RESULT_DIR=%GITHUB_WORKSPACE%/artifacts | |
"c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/bin/x64/nelson-cli" --noipc --quiet -f "c:/install/Nelson ${{ steps.json_version.outputs.packageVersion }}.%GITHUB_RUN_NUMBER%/tools/tests_all/runtests_all.m" | |
- name: Copy installer in artifacts directory | |
run: | | |
mv Nelson-*.exe artifacts | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: nelson-github-action-artifacts-windows-amd64-${{ steps.json_version.outputs.packageVersion }}.${{ github.run_number }} | |
path: artifacts/ |