Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting up the tests #2

Open
wants to merge 218 commits into
base: cmake
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
218 commits
Select commit Hold shift + click to select a range
56c3fc1
cppcheck 2.10.3
GiovanniBussi Mar 21, 2023
6971f12
rename files
Apr 2, 2023
169a2f2
changed my mind about filenames
Apr 2, 2023
ccdfa92
plumed version
Apr 2, 2023
eba8bfa
Université Paris Cité
Apr 2, 2023
64abf1f
remove Ex. 3
Apr 5, 2023
9e1622a
COSINUS doc is not compatible with MathJax
Iximiel Apr 20, 2023
9ee79ed
the COSINUS switching function now is shown
Iximiel Apr 21, 2023
ad4962d
using array over using cases -TD_Mulicanonical doc
Iximiel Apr 22, 2023
004c253
using array over using cases -TD_Uniform doc
Iximiel Apr 22, 2023
4d6402c
reinserted missing equations in VES tutorials
Iximiel Apr 22, 2023
8c145a4
solved: cases renders incorrectly in pdflatex
Iximiel Apr 22, 2023
a98bcf5
DRR: add output of zgrad for debugging and inspecting the spring forces
HanatoK Apr 22, 2023
347cd8e
DRR: document the changes and fix the bold symbol of \xi
HanatoK Apr 22, 2023
9a2999c
DRR: Mute the codecheck warning
HanatoK Apr 22, 2023
58c2430
DRR: add output of zgrad for debugging and inspecting the spring forces
HanatoK Apr 22, 2023
4518787
DRR: document the changes and fix the bold symbol of \xi
HanatoK Apr 22, 2023
700164c
DRR: Mute the codecheck warning
HanatoK Apr 22, 2023
95f2101
Merge branch 'v2.9'
GiovanniBussi Apr 24, 2023
38bad61
Merge remote-tracking branch 'hanatok/drr'
GiovanniBussi Apr 24, 2023
ffeb740
Using ubuntu 22 in tests
GiovanniBussi Apr 24, 2023
3ac9a16
Merge branch 'v2.8' into v2.9
GiovanniBussi Apr 24, 2023
4332e74
Merge branch 'v2.9'
GiovanniBussi Apr 24, 2023
9ce281b
Merge remote-tracking branch 'daniele/switchDoc2.8' into v2.8
GiovanniBussi Apr 24, 2023
cf9c1bf
Merge branch 'v2.8' into v2.9
GiovanniBussi Apr 24, 2023
f787e7c
Merge branch 'v2.9'
GiovanniBussi Apr 24, 2023
f5486b2
Update link to Environment Finder (#932)
PabloPiaggi Apr 27, 2023
7e1a8da
Merge branch 'v2.7' into v2.8
carlocamilloni Apr 27, 2023
707d75b
Merge branch 'v2.8' into v2.9
carlocamilloni Apr 27, 2023
79b5d9a
Merge branch 'v2.9'
carlocamilloni Apr 27, 2023
b2011e8
Merge remote-tracking branch 'origin/v2.8' into v2.9
GiovanniBussi Apr 27, 2023
b03f21a
Merge branch 'v2.9'
GiovanniBussi Apr 27, 2023
e7c2693
Added regtest for changedir and list files
GiovanniBussi Apr 25, 2023
ae6cc8f
Merge branch 'v2.9'
GiovanniBussi Apr 27, 2023
25bd964
Added -fno-gnu-unique
GiovanniBussi Apr 26, 2023
97cf096
Small cppcheck fix
GiovanniBussi Apr 26, 2023
ba817b6
New warnings for METAD adn WALKERS_MPI (#931)
Iximiel May 14, 2023
7e99fa6
Merge branch 'v2.9' of github.com:plumed/plumed2 into v2.9
carlocamilloni May 14, 2023
22c2a3d
New warnings for METAD adn WALKERS_MPI (#931)
Iximiel May 14, 2023
468435b
Merge branch 'v2.9'
carlocamilloni May 14, 2023
1f3dba8
V2.9 - add to OPES same MPI-related error messages of METAD (#940)
invemichele May 16, 2023
61b137f
Merge branch 'v2.9'
carlocamilloni May 16, 2023
df02d27
added the tests
Iximiel May 18, 2023
1a27d58
TEMPORARY disabling workflow
Iximiel May 18, 2023
27225b3
hoping that work for sure
Iximiel May 18, 2023
0dc4709
corrected the cmake set up in the CI
Iximiel May 18, 2023
811f990
updated the CI
Iximiel May 18, 2023
5ed3b76
CI restored
Iximiel May 18, 2023
b3011a0
upgrading the CMake configuration for install
Iximiel May 19, 2023
e623a66
Now the CMakeFiles are compatible with the new macro
Iximiel May 19, 2023
a5d6d98
all the includes are installed where is needed
Iximiel May 19, 2023
c5f0127
added installation to the CI
Iximiel May 19, 2023
832a033
Added GPUMD
GiovanniBussi May 21, 2023
b20517e
Merge branch 'v2.9'
GiovanniBussi May 21, 2023
2d75ea1
It looks like this test does not really use MPI (#942)
GiovanniBussi May 22, 2023
5d18cc3
installing the Template.cpp
Iximiel May 22, 2023
92609ae
Removed useless command
GiovanniBussi May 22, 2023
95cc6eb
Made plumed calls in regtests more robust
GiovanniBussi May 22, 2023
6ac01e2
Merge branch 'v2.8' into v2.9
GiovanniBussi May 22, 2023
bed50cc
Merge branch 'v2.9'
GiovanniBussi May 22, 2023
13b352f
redesigend ADDMODULETOKERNEL to include needs and dependencies
Iximiel May 22, 2023
9018d97
Using better env var for openMPI
GiovanniBussi May 22, 2023
027d289
Merge branch 'v2.8' into v2.9
GiovanniBussi May 22, 2023
c7a505d
Merge branch 'v2.9'
GiovanniBussi May 22, 2023
5db452a
fedora38 (gcc 13)
GiovanniBussi Apr 24, 2023
f99433e
simplified docker jobs using matrix
GiovanniBussi May 22, 2023
dc23e24
fixed warnings on strncat
GiovanniBussi May 22, 2023
da33486
safety use of long double
invemichele May 22, 2023
ea17e58
added scripts and patches to installation recipe
Iximiel May 22, 2023
44f0c07
install now align slightly better with the original make
Iximiel May 22, 2023
45fe5df
robuts deltaF initialization
invemichele May 23, 2023
47054cb
more robust exp
invemichele May 23, 2023
03cc75a
numerically robust log1p of exp
invemichele May 23, 2023
48bba63
cleanup opes postprocessing scripts
invemichele May 23, 2023
c1567fb
clearer use of configurable files
Iximiel May 23, 2023
3f268f5
tab formatting
invemichele May 23, 2023
620b545
update changelog
invemichele May 23, 2023
2c72e9a
Merge pull request #943 from invemichele/expanded_overflow
GiovanniBussi May 23, 2023
cbae04b
Merge branch 'v2.8' into v2.9
GiovanniBussi May 23, 2023
9a84570
Merge branch 'v2.9'
GiovanniBussi May 23, 2023
3c426c3
more in changelog
GiovanniBussi May 23, 2023
c882204
Merge branch 'v2.8' into v2.9
GiovanniBussi May 23, 2023
0ba2bc9
Merge branch 'v2.9'
GiovanniBussi May 23, 2023
5982e8e
robust neff for step estimation
invemichele May 23, 2023
00b6ed7
remove last long double
invemichele May 23, 2023
6fe7731
Merge pull request #944 from invemichele/expanded_overflow
GiovanniBussi May 23, 2023
610cb32
Merge branch 'v2.8' into v2.9
GiovanniBussi May 23, 2023
82a596d
Merge branch 'v2.9'
GiovanniBussi May 23, 2023
132b58c
sliglhtly more aligned to the make install
Iximiel May 24, 2023
cd0338d
added the reusable workflows
Iximiel May 24, 2023
f4a8dd8
Merge pull request #945 from Iximiel/addingReusableWorkflows
GiovanniBussi May 24, 2023
51fcc51
adding some more options to config
Iximiel May 25, 2023
c683954
Removed latex from keyword explanation as the latex breaks the json file
May 25, 2023
d46d9fc
Merge branch 'v2.9'
May 25, 2023
005a383
Release v2.8.3
GiovanniBussi May 25, 2023
907472e
Merge branch 'v2.8' into v2.9
GiovanniBussi May 25, 2023
022bce1
adjusted changelog for 2.9
GiovanniBussi May 25, 2023
8e4baea
Release v2.9.0
GiovanniBussi May 25, 2023
b10067f
Merge branch 'v2.9'
GiovanniBussi May 25, 2023
387d376
added mpi
Iximiel May 25, 2023
edd4557
add a way to search for external Molfile plugins
Iximiel May 26, 2023
0d3409e
small tweaks in c++11 settings
Iximiel May 26, 2023
8195c7e
added libmolfile_plugin.h to the search
Iximiel May 26, 2023
f7ce8a3
small tweaks
Iximiel May 29, 2023
b46235b
moved macros in a specific directory
Iximiel May 29, 2023
42b8e51
added search for boost libraries
Iximiel May 29, 2023
28699d3
added cregex search
Iximiel May 29, 2023
bf2da38
added __PLUMED_HAS_RTLD_DEFAULT and a new function for config
Iximiel May 29, 2023
a77b7ed
added chdir popen and getcwd
Iximiel May 29, 2023
ba1951f
checked for subprocess
Iximiel May 29, 2023
1ca8448
nearly all of the default yes option are up
Iximiel May 29, 2023
77abb3b
now the test install the needed libraries
Iximiel May 29, 2023
c9e69eb
added readdir_r
Iximiel May 29, 2023
cb3ec5a
some more cleaning in the config file
Iximiel May 30, 2023
3473431
changed how SOEXT works
Iximiel May 30, 2023
60848b3
libraries now install correclty
Iximiel May 30, 2023
5a83751
set permission to scripts
Iximiel May 30, 2023
e2e6ccf
working on installation and on tests automation
Iximiel Jun 1, 2023
09a16a0
small change in CONFIGSETTINGS
Iximiel Jun 1, 2023
4477cd1
added the first step for the config.txt file
Iximiel Jun 1, 2023
57458b6
Cleaning (?) headers (#941)
Iximiel Jun 3, 2023
eae75df
Merge pull request #3 from plumed/master
Iximiel Jun 8, 2023
c9af437
more standard and controllable directory install choiche
Iximiel Jun 8, 2023
9f30554
getting the bases for configuring Plumed.inc
Iximiel Jun 8, 2023
07b3874
starting to prepare the pc config and the .inc files
Iximiel Jun 9, 2023
9aa94d4
trying to make the *.inc look like the originals
Iximiel Jun 21, 2023
da23ca4
added enable_libsearch and a easier control over some libraries
Iximiel Jun 22, 2023
f0d3dec
the various plumed.inc looks like the ondes from automake
Iximiel Jun 22, 2023
b172675
completing configure.txt
Iximiel Jun 22, 2023
40fcffa
set up the default status for the modules
Iximiel Jun 22, 2023
717bd6c
small rationalization int the CMakeLists
Iximiel Jun 22, 2023
5357a01
again some more rationalization on the module settings
Iximiel Jun 23, 2023
12440c0
Simplified module declaration
Iximiel Jun 23, 2023
a194fcb
qol change to CMAKE_BUILD_TYPE
Iximiel Jun 23, 2023
88342ad
small test update
Iximiel Jun 23, 2023
5e4698b
small test update
Iximiel Jun 23, 2023
6c9775b
small test update
Iximiel Jun 23, 2023
2c61b33
small changes in lib and corrected tests
Iximiel Jun 23, 2023
c3ced84
some aestetic changes
Iximiel Aug 3, 2023
92b8c49
creating a prototype for testing
Iximiel Aug 4, 2023
2c83013
setting up aliases for the executables
Iximiel Aug 4, 2023
6b814f5
improved the test macro
Iximiel Aug 4, 2023
8ccedcc
better run_ctest
Iximiel Aug 7, 2023
6033950
small changes to make easier test without install
Iximiel Aug 7, 2023
9f9a0c5
nw test accepts extra files and plumed modules
Iximiel Aug 8, 2023
dd5a3d1
copied fixzeroes into run_ctests
Iximiel Aug 8, 2023
23947b6
preparing for the future
Iximiel Aug 9, 2023
6119d82
regtest_before adaptation seems to work
Iximiel Aug 9, 2023
d7bd221
regtest_after adaptation seems to work
Iximiel Aug 9, 2023
069e648
forgot to commit the key feature
Iximiel Aug 9, 2023
5f2ac3e
ctest can run the driver tests in the basic dir
Iximiel Aug 9, 2023
0f3e31a
added the possibility to set up Labels for the tests
Iximiel Aug 9, 2023
cecdae0
added the possibility to set up Labels for the tests
Iximiel Aug 9, 2023
3fa72df
small corrections
Iximiel Aug 9, 2023
bb5ab28
Merge branch 'cmakeCtests' of https://github.com/Iximiel/plumed2 into…
Iximiel Aug 10, 2023
9de41bc
Added a new CLtool: config
Iximiel Aug 11, 2023
10a7d9a
added the plumed_custom_skip to the test converter
Iximiel Aug 11, 2023
48482ca
Set up the base for exporting plumed
Iximiel Aug 11, 2023
3ab3868
The exported targets compiles correctly a new so
Iximiel Aug 11, 2023
f1f11f9
set up a more roubst wayt to pass the lib dependencies
Iximiel Aug 16, 2023
5940573
blas and lapack code now is more readable
Iximiel Aug 17, 2023
5c36dad
some CMakeLists polishing
Iximiel Aug 18, 2023
3e8f7ea
created the add_plumed_plugin for cmake dependencies
Iximiel Aug 18, 2023
cd9e60b
updated
Iximiel Aug 18, 2023
5d077d3
some more refinements in the pacage.cmake
Iximiel Aug 21, 2023
fc90be7
cleaning the src List
Iximiel Aug 21, 2023
a2022f0
now testa can be run as a standalone project
Iximiel Aug 21, 2023
5a4f0c3
Added a comment to the regtest list to inform the user that can be ru…
Iximiel Aug 22, 2023
4437c7a
set up a better installation process, a new mklib
Iximiel Aug 21, 2023
6e9178e
Merge branch 'cmakeCtests' into mergeCtests
Iximiel Aug 22, 2023
4ba0437
changed the exit code for skip to 125
Iximiel Aug 23, 2023
a86c6e2
created make test , as now works for installed targets
Iximiel Aug 23, 2023
207206c
clarified the paralel between the makefile and the list for liraries …
Iximiel Aug 24, 2023
5bfed3d
Polishing of the lists
Iximiel Aug 24, 2023
8709716
the make tests seems to work in the build environment
Iximiel Aug 24, 2023
328d334
make ctests now links correcly for c++ and c
Iximiel Aug 25, 2023
42ffe1e
run_ctest: file in fixzeroes is now local
Iximiel Aug 25, 2023
efb228a
added some test for checking that the test engine works
Iximiel Aug 25, 2023
ba52dcb
ExportVariables works
Iximiel Aug 25, 2023
546e646
added tests for NEEDS and MODULES
Iximiel Aug 25, 2023
5c3fb91
unpdate the testConverter and the lists for the tests in basic
Iximiel Aug 25, 2023
c40f37f
setting up ctest in the CI
Iximiel Aug 25, 2023
4088d5d
commented the installation from the CI
Iximiel Aug 25, 2023
a31d1b6
Added output on failures for tests in the CI
Iximiel Aug 28, 2023
19bbeda
some polishing in the tests running set up
Iximiel Aug 28, 2023
754f794
change in some naming
Iximiel Aug 28, 2023
becfe3f
Squashed commit of the following:
Iximiel Aug 28, 2023
1a31534
cleaning run_ctest
Iximiel Aug 28, 2023
bccd1c7
changed how the KERNEL and the LIB are exported i=for the regtests
Iximiel Aug 28, 2023
a145431
More consistent export of Plumed2_DIR for the tests
Iximiel Aug 28, 2023
e5ff4d6
simplemd tests now works as intetended
Iximiel Aug 28, 2023
c8b062b
globs are now supported by run_ctest
Iximiel Aug 28, 2023
9010e96
making the test more checkable
Iximiel Aug 29, 2023
6085e1a
added test for the mpi variable
Iximiel Aug 29, 2023
2088cc7
added a check for arguments
Iximiel Aug 29, 2023
4ee0495
now run_test should be clearer
Iximiel Aug 29, 2023
82c7d2b
some tests slipped through the gitignore
Iximiel Aug 29, 2023
e407be2
creating an artifact with test results
Iximiel Aug 29, 2023
8827e93
coercing the artefact creation
Iximiel Aug 29, 2023
1dc6780
now the allmodules_* options work as intended also on the first cmake…
Iximiel Aug 29, 2023
1bf6f3f
corrected a grammar mistake in run_ctest
Iximiel Aug 29, 2023
abde6e2
the error of vim2html was on the std stream
Iximiel Aug 29, 2023
bad2cf9
converted to cmake also the vim syntax higlighting
Iximiel Aug 29, 2023
dcd9092
improved the CI
Iximiel Sep 5, 2023
32d635e
adding mpi to the CI
Iximiel Sep 5, 2023
d15c296
studying where the CI fails
Iximiel Sep 5, 2023
319dec4
studying where the CI fails II
Iximiel Sep 5, 2023
24b4659
studying where the CI fails III
Iximiel Sep 5, 2023
c5e3a8f
studying where the CI fails IV
Iximiel Sep 5, 2023
f565338
studying where the CI fails V
Iximiel Sep 6, 2023
9518fc0
studying where the CI fails VI
Iximiel Sep 6, 2023
9db2681
Changed vimsyntax.sh and CLManual to work also on the CI
Iximiel Sep 6, 2023
d1e3dd4
All the test without the feature implemented in cmake work(#23)
Iximiel Sep 7, 2023
a238161
Setting the CI as a matrix, plus restoring pytorch
Iximiel Sep 29, 2023
90b5ae9
Set up the cmake fortran compilaion (#26)
Iximiel Sep 29, 2023
d201161
Build-only config works, Fortan works in the CI with gcc(#32)
Iximiel Sep 29, 2023
435accc
implemented ccache into the cmake CI
Iximiel Oct 3, 2023
0a6bb0d
forgot to set python to 3.9
Iximiel Oct 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
328 changes: 20 additions & 308 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@ name: CI

on:
push:
#I am removing this as soon I make my branch work!
branches:
- 'master'
pull_request:
#I am removing this as soon I make my branch work!
branches:
- 'master'

env:
# on CI, better dump stack trace in case there is an error
Expand All @@ -14,317 +20,23 @@ env:
CXX: g++

jobs:

linux:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
variant:
- -doc-mpi-
- -mpi-
- -coverage-mpi-
- -debug-
- -debug-mpi-
- -intel-
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-reset1-linux${{ matrix.variant }}hash-${{ github.sha }}
restore-keys: ccache-reset1-linux${{ matrix.variant }}hash-
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.7
- name: Set paths
run: |
echo "$HOME/opt/bin" >> $GITHUB_PATH
# path required for pytest:
echo "$HOME/.local/bin" >> $GITHUB_PATH
echo "CPATH=$HOME/opt/include:$CPATH" >> $GITHUB_ENV
echo "INCLUDE=$HOME/opt/include:$INCLUDE" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/opt/lib:$LIBRARY_PATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "PYTHONPATH=$HOME/opt/lib/plumed/python:$PYTHONPATH" >> $GITHUB_ENV
- name: Install generic packages
run: |
sudo apt-get update -qq
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y libfftw3-dev
sudo apt-get install -y gsl-bin
sudo apt-get install -y libgsl0-dev
sudo apt-get install -y ccache
- name: Install system boost
if: ${{ ! contains( matrix.variant, '-debug-' ) }}
run: |
sudo apt-get install -y libboost-serialization-dev
- name: Install boost with debug flags
if: contains( matrix.variant, '-debug-' )
run: |
.ci/install.boost
- name: Install python packages needed for tests
run: |
python -m pip install --upgrade pip
pip install --user Cython
pip install --user numpy
pip install --user pytest
pip install --user six ;
pip install --user pandas ;
pip install --user mdtraj ;
pip install --user MDAnalysis ;
python -c "import MDAnalysis" ;
python -c "import mdtraj" ;
- name: Install Libtorch
if: ${{ ! contains( matrix.variant, '-debug-' ) }} # libtorch is not compiled with GLIBCXX_DEBUG
run: |
# added by luigibonati
mkdir -p $HOME/opt/
cd $HOME/opt/ # GB: install in $HOME/opt/libtorch
wget --no-check-certificate https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.13.1%2Bcpu.zip ;
unzip libtorch-cxx11-abi-shared-with-deps-1.13.1+cpu.zip ;
echo "LIBRARY_PATH=$PWD/libtorch/lib:$LIBRARY_PATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$PWD/libtorch/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "CPATH=$PWD/libtorch/include/torch/csrc/api/include/:$PWD/libtorch/include/:$PWD/libtorch/include/torch:$CPATH" >> $GITHUB_ENV
echo "INCLUDE=$PWD/libtorch/include/torch/csrc/api/include/:$PWD/libtorch/include/:$PWD/libtorch/include/torch:$INCLUDE" >> $GITHUB_ENV
echo "PLUMED_CONFIG=$PLUMED_CONFIG --enable-libtorch" >> $GITHUB_ENV
- name: Install Doxygen
if: contains( matrix.variant, '-doc-' )
run: |
sudo apt-get install -y graphviz
sudo apt-get install -y doxygen-latex
.ci/install.doxygen Release_1_8_17
echo "PLUMED_CONFIG=$PLUMED_CONFIG --enable-pdfdoc" >> $GITHUB_ENV
# make sure all tests are run
echo "PLUMED_ALL_TESTS=yes" >> $GITHUB_ENV
- name: Install lcov
if: contains( matrix.variant, '-coverage-' )
run: |
.ci/install.lcov v1.16
echo "PLUMED_CONFIG=$PLUMED_CONFIG --disable-external-lapack --disable-external-blas --enable-gcov CXXFLAGS=-O" >> $GITHUB_ENV
# make sure all tests are run
echo "PLUMED_ALL_TESTS=yes" >> $GITHUB_ENV
- name: Setup debug flags
if: contains( matrix.variant, '-debug-' )
run: |
echo "PLUMED_CONFIG=$PLUMED_CONFIG --enable-debug --enable-debug-glibcxx" >> $GITHUB_ENV
- name: Install INTEL compiler
# install INTEL at last since it modifies CC and CXX
if: contains( matrix.variant, '-intel-' )
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mkl intel-oneapi-mkl-devel intel-oneapi-compiler-fortran
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
echo "CXX=icpc" >> $GITHUB_ENV
echo "CC=icc" >> $GITHUB_ENV
echo "FC=ifort" >> $GITHUB_ENV
- name: Install MPI
# install MPI at last since it modifies CC and CXX
if: contains( matrix.variant, '-mpi-' )
run: |
sudo apt-get install -y libopenmpi-dev openmpi-bin
echo "CC=mpicc" >> $GITHUB_ENV
echo "CXX=mpic++" >> $GITHUB_ENV
echo "OMPI_MCA_btl_base_warn_component_unused=0" >> $GITHUB_ENV
echo "OMPI_MCA_btl_base_verbose=0" >> $GITHUB_ENV
echo "MPIEXEC=mpirun --oversubscribe" >> $GITHUB_ENV
pip install --user mpi4py
python -c "import mpi4py"
- name: Build PLUMED
run: |
ccache -s -M 100M
./configure CXX="ccache $CXX" --enable-boost_serialization --disable-dependency-tracking --enable-modules=all LDFLAGS=-Wl,-rpath,$LD_LIBRARY_PATH $PLUMED_CONFIG --prefix="$HOME/opt"
make -j 4
make install
# check for global symbols, see https://github.com/plumed/plumed2/issues/549
make nmcheck
ccache -s -M 100M
- name: Run tests
if: ${{ ! contains( matrix.variant, '-doc-mpi-' ) }}
run: |
(while true; do # see https://github.com/actions/virtual-environments/issues/1860
df -h
sleep 15
done) &
make --no-print-directory -C regtest testclean
# these can fail for numerical reasons
make -C regtest checkfail
- name: Run python tests
run: |
cd python
pytest -v
- name: Build doc
env:
GIT_TOKEN: ${{ secrets.GIT_TOKEN_PLUMEDBOT }}
if: contains( matrix.variant, '-doc-' )
run: |
make doc >/dev/null
- name: Coverage
env:
GIT_TOKEN: ${{ secrets.GIT_TOKEN_PLUMEDBOT }}
if: contains( matrix.variant, '-coverage-' )
run: |
make -C developer-doc coverage
.ci/push coverage
bash <(curl -s https://codecov.io/bash) > /dev/null
- name: Push doc
if: contains( matrix.variant, '-doc-' )
env:
GIT_TOKEN: ${{ secrets.GIT_TOKEN_PLUMEDBOT }}
run: |
.ci/push doc
uses: ./.github/workflows/linuxWF.yml
secrets: inherit

codecheck:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set path
run: |
echo "$HOME/opt/bin" >> $GITHUB_PATH
- name: Install requirements
run: |
.ci/install.cppcheck 2.10.2
# it is important that this is the same version used to generate the actual ./configure
.ci/install.autoconf 2.69
- name: Build astyle
run: |
make -j 4 -C astyle
- name: Checking code
run: |
# this is required so as to have all the include files in place
# notice that this is done automatically in build
# first make sure that dirslinks are generated for all modules
./configure --enable-modules=all
# then generate the links
make -C src/lib/ dirslinks
make codecheck

# We test on centos7 to make sure we have compatibility with older compilers (gcc 4.8)
centos7:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Build and run tests
run: |
make -C docker centos7

# We test on fedora37 to make sure we have compatibility with newer compilers (gcc 12)
fedora37:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Build and run tests
run: |
make -C docker fedora37

# We test on rockylinux8 as well
rocky8:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Build and run tests
run: |
make -C docker rocky8

macports:
runs-on: macos-11
strategy:
fail-fast: false
matrix:
variant: [ "" , "+allmodules" ]
# see https://github.community/t/how-to-conditionally-include-exclude-items-in-matrix-eg-based-on-branch/16853/6 for possible exclusions
env:
PYVERS: "py37 py38 py39 py310"
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.macports-ci-ccache
key: ccache-macports-${{ matrix.variant }}-${{ github.sha }}
restore-keys: ccache-macports-${{ matrix.variant }}-
- name: Install MacPorts
run: |
wget https://raw.githubusercontent.com/GiovanniBussi/macports-ci/master/macports-ci
source ./macports-ci install
source ./macports-ci ccache
- name: Build local Portfile
run: |
make macports
source ./macports-ci localports macports
- name: Build PLUMED
run: |
sudo port -N -k install plumed ${{ matrix.variant }}
plumed config show
for p in $PYVERS ; do
sudo port -N install $p-plumed
done
source ./macports-ci ccache --save
- name: Run tests
run: |
sudo port -N -d test plumed ${{ matrix.variant }}
- name: Run python tests
run: |
for p in $PYVERS ; do
sudo port test $p-plumed
done
uses: ./.github/workflows/codecheckWF.yml
secrets: inherit

macsimple:
runs-on: macos-11
steps:
- uses: actions/checkout@v3
- name: Set paths
run: |
echo "$HOME/opt/bin" >> $GITHUB_PATH
echo "CPATH=$HOME/opt/include:$CPATH" >> $GITHUB_ENV
echo "INCLUDE=$HOME/opt/include:$INCLUDE" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/opt/lib:$LIBRARY_PATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
- name: Build PLUMED
run: |
brew update > /dev/null
brew install gawk
./configure --disable-dependency-tracking --prefix="$HOME/opt"
make -j 4
make install
- name: Run tests
run: |
make --no-print-directory -C regtest
# these can fail for numerical reasons
make -C regtest checkfail
mac:
uses: ./.github/workflows/macWF.yml
secrets: inherit

docker:
uses: ./.github/workflows/dockerWF.yml
secrets: inherit

conda:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04 , macos-11]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install conda
run: |
curl -LO https://raw.githubusercontent.com/GiovanniBussi/conda-ci/master/conda-ci
source ./conda-ci install
source ./conda-ci install-conda-build
- name: Build PLUMED
run: |
source activate base
export VERSION=none
if [[ $GITHUB_REF == "refs/tags/"* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
VERSION=${VERSION//-/_}
VERSION=${VERSION#v}
fi
make -C conda
- name: Deploy
env:
CONDA_UPLOAD_TOKEN: ${{ secrets.CONDA_UPLOAD_TOKEN }}
if: ${{ startsWith( github.ref , 'refs/tags/' ) }}
run: |
source activate base
export CONDA_LABEL=tag
make -C conda upload
uses: ./.github/workflows/condaWF.yml
secrets: inherit
Loading