-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path.gitlab-ci.yml
132 lines (123 loc) · 3.68 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#
# VELOXCHEM
# ----------------------------------------------------
# An Electronic Structure Code
#
# Copyright © 2018-2024 by VeloxChem developers. All rights reserved.
#
# SPDX-License-Identifier: LGPL-3.0-or-later
#
# This file is part of VeloxChem.
#
# VeloxChem is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# VeloxChem is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with VeloxChem. If not, see <https://www.gnu.org/licenses/>.
default:
tags:
- vlx-docker
image: ghcr.io/veloxchem/meta-vlx/vlx-ci_gnu:sha-468ec9b
interruptible: true
workflow:
rules:
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
- if: $CI_PIPELINE_SOURCE != "schedule"
- when: always
stages:
- build
- test
- deploy
.monkey:conf:
variables:
VLX_NUM_BUILD_JOBS: "6"
before_script:
- uname -a
- free -m
- df -h
- ulimit -a
- ulimit -s unlimited
- lscpu | egrep 'Thread|Core|Socket|^CPU\('
- python -V
- gcc --version
- g++ --version
.monkey:setup:
extends:
- .monkey:conf
before_script:
- !reference [ .monkey:conf, before_script]
- python -m venv --clear venv
- source venv/bin/activate
- python -m pip install --upgrade
pip
setuptools
wheel
monkey:cmake_build:
extends:
- .monkey:setup
stage: build
script:
- python -m pip install
numpy
pybind11[global]
- CC=gcc MPICC=mpicc python -m pip install mpi4py --no-binary=mpi4py
- git clone -b 3.4.0 https://gitlab.com/libeigen/eigen.git
- export EIGEN_INCLUDE_DIR=$(pwd)/eigen
- export DFTD4_HOME=/usr/local
- export XTBHOME=/usr/local
- cmake
-S.
-Bbuild
-GNinja
-DCMAKE_CXX_COMPILER=g++
-DVLX_LA_VENDOR=OpenBLAS
- cmake --build build --parallel "$VLX_NUM_BUILD_JOBS" --target veloxchemlib -- -d stats
artifacts:
paths:
- build
expire_in: 2 days
monkey:pip_install:
extends: .monkey:setup
stage: build
script:
- CC=gcc MPICC=mpicc python -m pip install mpi4py --no-binary=mpi4py
- CC=gcc CXX=g++ python -m pip install
MDAnalysis
- git clone -b 3.4.0 https://gitlab.com/libeigen/eigen.git
- export EIGEN_INCLUDE_DIR=$(pwd)/eigen
- CXX=g++ python -m pip install
git+https://gitlab.com/FraME-projects/PyFraME.git@84a356bfe3b9af17345ec754383a38792291dbbb
- python -m pip install openmm rdkit pymbar
- export DFTD4_HOME=/usr/local
- export XTBHOME=/usr/local
- SKBUILD_CONFIGURE_OPTIONS="-DVLX_LA_VENDOR=OpenBLAS -DCMAKE_CXX_COMPILER=g++"
python -m pip install -v .[test,qmmm]
artifacts:
paths:
- venv
expire_in: 2 days
monkey:python_tests:
extends: .monkey:conf
stage: test
needs: ["monkey:pip_install"]
variables:
OMP_NUM_THREADS: "6"
OMP_PLACES: "cores"
script:
- source venv/bin/activate
- python -c "import veloxchem; print(veloxchem.__version__)"
- mpiexec -n 2 python -m pytest --capture=no --log-cli-level=INFO
-m "solvers" --durations=10
- python -m pytest --cov=veloxchem --capture=no --log-cli-level=INFO
-m "not timeconsuming" --durations=10
include:
- '.gitlab/cron-deploy.yml'
- '.gitlab/deploy.yml'