@@ -579,8 +579,9 @@ jobs:
579
579
cpp_compiler : ["gcc"]
580
580
581
581
# available use flags (all default to "OFF"):
582
- # openmp, mpi, python, gsl, ltdl, boost, sionlib, libneurosim, optimize, warning, userdoc, music
582
+ # openmp, mpi, python, gsl, ltdl, boost, sionlib, libneurosim, optimize, warning, userdoc, music, readline
583
583
use :
584
+ - " optimize, warning"
584
585
- " boost, optimize, warning"
585
586
- " openmp, python, gsl, ltdl, boost, optimize, warning"
586
587
- " mpi, python, gsl, ltdl, boost, optimize, warning"
@@ -619,26 +620,41 @@ jobs:
619
620
620
621
- name : " Install Linux system dependencies"
621
622
run : |
622
- sudo apt-get update
623
623
# https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
624
- sudo apt-get install ccache
625
- sudo apt-get install libltdl-dev libreadline6-dev libncurses5-dev libgsl0-dev python3-all-dev jq libpcre3 libpcre3-dev
626
- sudo apt-get install tcl8.6 tcl8.6-dev tk8.6-dev
627
- # Install MPI dependencies regardless of whether we compile NEST with or without MPI, so the installation of MPI4Py works
628
- sudo apt-get install openmpi-bin libopenmpi-dev
629
- sudo apt-get install libboost-filesystem-dev libboost-regex-dev libboost-wave-dev libboost-python-dev libboost-program-options-dev libboost-test-dev
630
- sudo apt-get install pkg-config
624
+ sudo apt-get update
625
+ sudo apt-get install \
626
+ ccache \
627
+ python3-all-dev \
628
+ jq \
629
+ libpcre3 libpcre3-dev \
630
+ pkg-config
631
+ # not sure why these would be required:
632
+ # sudo apt-get install tcl8.6 tcl8.6-dev tk8.6-dev
631
633
sudo ldconfig
632
634
635
+ - name : " Install Readline dependencies"
636
+ if : " ${{ contains(matrix.use, 'readline') }}"
637
+ run : " sudo apt-get install libreadline6-dev libncurses5-dev"
638
+
639
+ - name : " Install LTDL dependencies"
640
+ if : " ${{ contains(matrix.use, 'ltdl') }}"
641
+ run : " sudo apt-get install libltdl-dev"
642
+
643
+ - name : " Install Boost dependencies"
644
+ if : " ${{ contains(matrix.use, 'boost') }}"
645
+ run : " sudo apt-get install libboost-filesystem-dev libboost-regex-dev libboost-wave-dev libboost-python-dev libboost-program-options-dev libboost-test-dev"
646
+
647
+ - name : " Install OpenMPI development dependencies"
648
+ if : " ${{ contains(matrix.use, 'mpi') }}"
649
+ run : " sudo apt-get install openmpi-bin libopenmpi-dev"
650
+
633
651
- name : " Install GSL system dependencies"
634
652
if : " ${{ contains(matrix.use, 'gsl') }}"
635
- run : |
636
- sudo apt-get install libgsl0-dev
653
+ run : " sudo apt-get install libgsl0-dev"
637
654
638
655
- name : " Install HDF5 system dependencies"
639
656
if : " ${{ contains(matrix.use, 'hdf5') }}"
640
- run : |
641
- sudo apt-get install libhdf5-dev
657
+ run : " sudo apt-get install libhdf5-dev"
642
658
643
659
- name : " Restore ccache"
644
660
# Using CCache to re-use compiled objects from prior runs that have the same
@@ -674,13 +690,24 @@ jobs:
674
690
- name : " Install Python dependencies"
675
691
run : |
676
692
python -m pip install --upgrade pip setuptools
693
+ python -m pip install --force-reinstall --upgrade cython # this finds a broken preinstall if not explicitly forced
677
694
python -c "import setuptools; print('package location:', setuptools.__file__)"
678
- python -m pip install --force-reinstall --upgrade scipy 'junitparser>=2' numpy pytest pytest-timeout pytest-xdist cython matplotlib terminaltables pandoc pandas
679
- # Install mpi4py regardless of whether we compile NEST with or without MPI, so regressiontests/issue-1703.py will run in both cases
680
- python -m pip install --force-reinstall --upgrade mpi4py
695
+ pip list
696
+
697
+ - name : " Install Python test dependencies"
698
+ # These could go to a separate venv…
699
+ run : |
700
+ python -m pip install 'junitparser>=2' pytest pytest-timeout pytest-xdist terminaltables
701
+ python -m pip install numpy scipy pandas matplotlib
681
702
test \! -e "=2" # assert junitparser is correctly quoted and '>' is not interpreted as shell redirect
682
703
python -c "import pytest; print('package location:', pytest.__file__)"
683
- pip list
704
+
705
+ - name : " Install Python doc dependencies"
706
+ run : " python -m pip install pandoc"
707
+
708
+ - name : " Install Python mpi dependencies"
709
+ if : " ${{ contains(matrix.use, 'mpi') }}"
710
+ run : " python -m pip install --force-reinstall --upgrade mpi4py"
684
711
685
712
- name : " Install h5py"
686
713
if : " ${{ contains(matrix.use, 'hdf5') }}"
@@ -706,6 +733,26 @@ jobs:
706
733
PYLIB_DIR="$(python3 -c "import sysconfig; print(sysconfig.get_path('include'))" | sed 's/include/lib/')"
707
734
./build_support/install_csa-libneurosim.sh $PYLIB_DIR
708
735
736
+ - name : " Uninstall Boost development libraries"
737
+ if : " ${{ ! contains(matrix.use, 'boost') }}"
738
+ run : |
739
+ apt list --installed 'libboost*'
740
+ sudo apt-get remove --autoremove 'libboost*-dev'
741
+
742
+ - name : " List available packages"
743
+ if : " ${{ ! contains(matrix.use, 'boost') }}"
744
+ run : |
745
+ gcc --version
746
+ python --version
747
+ echo "INSTALLED PYTHON PACKAGES:"
748
+ pip list
749
+ echo "INSTALLED BOOST PACKAGES:"
750
+ dpkg -l 'libboost*' | grep "^ii" || true
751
+ echo "INSTALLED BOOST HEADERS:"
752
+ dpkg -l 'libboost*-dev' | grep "^ii" || true
753
+ echo "LIST HAS TO BE ZERO"
754
+ test -z "$(dpkg -l 'libboost*-dev' | grep "^ii")"
755
+
709
756
- name : " Configure NEST build"
710
757
env :
711
758
CMAKE_C_COMPILER_LAUNCHER : ccache
0 commit comments