Skip to content
This repository was archived by the owner on Sep 28, 2021. It is now read-only.

Commit c29c736

Browse files
committed
.gitlab-ci.yml: initial commit
1 parent 225ea20 commit c29c736

1 file changed

Lines changed: 188 additions & 0 deletions

File tree

.gitlab-ci.yml

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
stages:
2+
- canary
3+
- build
4+
5+
.build_script:
6+
retry:
7+
max: 2
8+
variables:
9+
CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
10+
stage: build
11+
artifacts:
12+
paths:
13+
- ${CI_PROJECT_DIR}/votca
14+
when: always
15+
dependencies: []
16+
cache:
17+
paths:
18+
- ccache/
19+
script:
20+
- ccache -z
21+
- j="$(grep -c processor /proc/cpuinfo 2>/dev/null)" || j=0; ((j++))
22+
- git branch commit_of_build_${CI_BUILD_ID} ${CI_COMMIT_SHA}
23+
- git clone https://github.com/votca/votca
24+
- pushd votca
25+
- if [[ ${CI_COMMIT_TAG} = v[12].[0-9]* ]]; then
26+
git checkout -b ${CI_COMMIT_TAG} ${CI_COMMIT_TAG};
27+
elif [[ ( ${CI_COMMIT_REF_NAME} =~ ^for/([^/]*)/.* || ${CI_COMMIT_REF_NAME} =~ ^(stable)$ ) && ${BASH_REMATCH[1]} != master ]]; then
28+
git checkout -b ${BASH_REMATCH[1]} origin/${BASH_REMATCH[1]};
29+
fi
30+
- git submodule update --recursive --init
31+
- git -C ${CI_PROJECT_NAME} fetch ${CI_PROJECT_DIR} commit_of_build_${CI_BUILD_ID}
32+
- git -C ${CI_PROJECT_DIR} branch -d commit_of_build_${CI_BUILD_ID}
33+
- git -C ${CI_PROJECT_NAME} checkout -f ${CI_COMMIT_SHA}
34+
- mkdir -p build
35+
- pushd build
36+
- cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_TESTING=ON -DBUILD_XTP=ON -DENABLE_WERROR=ON
37+
-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
38+
-DMODULE_BUILD=${MODULE_BUILD} ${MODULE_BUILD:+-DCMAKE_INSTALL_PREFIX=/home/votca/votca.install}
39+
-DWITH_MKL=${WITH_MKL} -DCMAKE_DISABLE_FIND_PACKAGE_MKL=${DISABLE_MKL}
40+
-DUSE_CUDA=${USE_CUDA}
41+
- cmake --build . -- -j2
42+
- ctest --output-on-failure
43+
- test -z "${MODULE_BUILD}" && DESTDIR=${PWD}/install cmake --build . --target install && rm -rf ${PWD}/install/usr && rmdir ${PWD}/install
44+
- sudo cmake --build . --target install
45+
- if [[ ${CLANG_FORMAT} ]]; then cmake --build . --target format && git -C ${CI_PROJECT_DIR}/votca/${CI_PROJECT_NAME} diff --exit-code; fi
46+
- ccache -s
47+
48+
.build:
49+
variables:
50+
DISTRO: "latest"
51+
image: votca/buildenv:${DISTRO}
52+
extends: .build_script
53+
54+
Debug GCC:
55+
stage: canary
56+
variables:
57+
CC: "gcc"
58+
CXX: "g++"
59+
CMAKE_BUILD_TYPE: "Debug"
60+
CLANG_FORMAT: "yes"
61+
extends: .build
62+
63+
None GCC:
64+
variables:
65+
CC: "gcc"
66+
CXX: "g++"
67+
CMAKE_BUILD_TYPE: ""
68+
extends: .build
69+
70+
None Clang:
71+
variables:
72+
CC: "clang"
73+
CXX: "clang++"
74+
CMAKE_BUILD_TYPE: ""
75+
extends: .build
76+
77+
Debug Clang:
78+
variables:
79+
CC: "clang"
80+
CXX: "clang++"
81+
CMAKE_BUILD_TYPE: "Debug"
82+
extends: .build
83+
84+
Release GCC:
85+
variables:
86+
CC: "gcc"
87+
CXX: "g++"
88+
CMAKE_BUILD_TYPE: "Release"
89+
extends: .build
90+
91+
Release Clang:
92+
variables:
93+
CC: "clang"
94+
CXX: "clang++"
95+
CMAKE_BUILD_TYPE: "Release"
96+
extends: .build
97+
98+
Debug GCC Ubuntu:
99+
variables:
100+
CC: "gcc"
101+
CXX: "g++"
102+
CMAKE_BUILD_TYPE: "Debug"
103+
DISTRO: "ubuntu"
104+
extends: .build
105+
106+
Debug Clang Ubuntu:
107+
variables:
108+
CC: "clang"
109+
CXX: "clang++"
110+
CMAKE_BUILD_TYPE: "Debug"
111+
DISTRO: "ubuntu"
112+
extends: .build
113+
114+
Release GCC Ubuntu:
115+
variables:
116+
CC: "gcc"
117+
CXX: "g++"
118+
CMAKE_BUILD_TYPE: "Release"
119+
DISTRO: "ubuntu"
120+
extends: .build
121+
122+
Release Clang Ubuntu:
123+
variables:
124+
CC: "clang"
125+
CXX: "clang++"
126+
CMAKE_BUILD_TYPE: "Release"
127+
DISTRO: "ubuntu"
128+
extends: .build
129+
130+
Debug GCC Rawhide:
131+
variables:
132+
CC: "gcc"
133+
CXX: "g++"
134+
CMAKE_BUILD_TYPE: "Debug"
135+
DISTRO: "fedora_rawhide"
136+
extends: .build
137+
allow_failure: true
138+
139+
Debug Clang Rawhide:
140+
variables:
141+
CC: "clang"
142+
CXX: "clang++"
143+
CMAKE_BUILD_TYPE: "Debug"
144+
DISTRO: "fedora_rawhide"
145+
extends: .build
146+
allow_failure: true
147+
148+
Release GCC Rawhide:
149+
variables:
150+
CC: "gcc"
151+
CXX: "g++"
152+
CMAKE_BUILD_TYPE: "Release"
153+
DISTRO: "fedora_rawhide"
154+
extends: .build
155+
allow_failure: true
156+
157+
Release Clang Rawhide:
158+
variables:
159+
CC: "clang"
160+
CXX: "clang++"
161+
CMAKE_BUILD_TYPE: "Release"
162+
DISTRO: "fedora_rawhide"
163+
extends: .build
164+
allow_failure: true
165+
166+
Release GCC Module:
167+
variables:
168+
CC: "gcc"
169+
CXX: "g++"
170+
CMAKE_BUILD_TYPE: "Release"
171+
MODULE_BUILD: "yes"
172+
extends: .build
173+
174+
Debug GPU Ubuntu:
175+
variables:
176+
CC: "gcc"
177+
CXX: "g++"
178+
CMAKE_BUILD_TYPE: "Debug"
179+
USE_CUDA: "yes"
180+
WITH_MKL: "no"
181+
DISABLE_MKL: "yes"
182+
NO_INSTALL: "yes"
183+
before_script:
184+
- source /opt/gromacs-2019/bin/GMXRC.bash
185+
extends: .build_script
186+
allow_failure: true
187+
tags:
188+
- gpu

0 commit comments

Comments
 (0)