forked from laristra/flecsi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
113 lines (110 loc) · 4.73 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
stages:
- build
- test
- deploy
NAME_JOB1:
variables:
GLOBAL_CI_VARIABLE: "global_ci_value"
GIT_SUBMODULE_STRATEGY: recursive
DISTRO: "ubuntu"
RUNTIME: "mpi"
ARTIFACTS_PROJECT_PATH: ${CI_PROJECT_DIR} #/builds/gitlab_account/flecsi
image:
name: laristra/flecsi-third-party:${DISTRO} #user: flecsi
stage: build
artifacts:
expire_in: 1 hour
paths:
- ${ARTIFACTS_PROJECT_PATH}
script:
- mkdir ${CI_PROJECT_DIR}/build
- cd build
- |
cmake -DENABLE_LEGION=$LEGION \
-DFLECSI_RUNTIME_MODEL=$RUNTIME \
${MINIMAL:+-DCMAKE_DISABLE_FIND_PACKAGE_METIS=ON}\
-DFLECSI_ENABLE_TUTORIAL=$([ "$RUNTIME" = "hpx" ] \
&& echo OFF || echo ON) \
-DENABLE_UNIT_TESTS=ON \
-DENABLE_PARMETIS=ON \
-DENABLE_COLORING=ON \
-DENABLE_DOXYGEN=ON \
-DENABLE_DOCUMENTATION=OFF \
${COVERAGE:+-DENABLE_COVERAGE_BUILD=ON} \
..
- make doxygen
- |
if [ ${COVERAGE} ];
then python -m coverxygen --xml-dir doc/doxygen/xml/ \
--src-dir .. \
--output doxygen.coverage.info;
wget -O codecov.sh https://codecov.io/bash;
bash codecov.sh -X gcov \
-f doxygen.coverage.info \
-F documentation;
doxy-coverage --threshold 24 doc/doxygen/xml/;
fi
- make install DESTDIR=${PWD}/install
- rm -rf ${PWD}/install
- cd ..
- |
if [ ${COVERAGE} ];
then if [ ${CC} = clang ];
then $HOME/.local/bin/codecov -F "${CC}" \
--gcov-exec "llvm-cov gcov";
else $HOME/.local/bin/codecov -F "${CC}";
fi;
fi
- cd build
- sudo make install
- cp -r /usr/local ${CI_PROJECT_DIR}/.
NAME_JOB2:
variables:
GLOBAL_CI_VARIABLE: "global_ci_value"
DISTRO: "ubuntu"
RUNTIME: "mpi"
ARTIFACTS_PROJECT_PATH: ${CI_PROJECT_DIR} #/builds/gitlab_account/flecsi
image: laristra/flecsi-third-party:${DISTRO} #user: flecsi
stage: test
dependencies:
- NAME_JOB1
artifacts:
expire_in: 1 hour
paths:
- ${ARTIFACTS_PROJECT_PATH}
script:
- cd ${CI_PROJECT_DIR}/build/
- make test ARGS="-V"
NAME_JOB3:
variables:
GLOBAL_CI_VARIABLE: "global_ci_value"
DISTRO: "ubuntu"
RUNTIME: "mpi"
ARTIFACTS_PROJECT_PATH: ${CI_PROJECT_DIR} #/builds/gitlab_account/flecsi
image: docker:latest #user: root
stage: deploy
services:
- docker:dind
dependencies:
- NAME_JOB2
artifacts:
expire_in: 1 hour
paths:
- ${ARTIFACTS_PROJECT_PATH}
script:
- |
if [[ ${CC} != gcc ]];
then TAG="_${CC}";
fi
- |
if [[ ${CI_COMMIT_REF_NAME} != stable ]];
then TAG="${TAG}_${CI_COMMIT_REF_NAME//\//_}";
fi
- docker pull laristra/flecsi-third-party:${DISTRO}
- CON=$(docker run -d laristra/flecsi-third-party:${DISTRO} /bin/bash)
- docker cp /builds ${CON}:/.
- docker cp ${CI_PROJECT_DIR}/local ${CON}:/usr/local
- rm -r ${CI_PROJECT_DIR}/local
- docker cp ${CI_PROJECT_DIR} ${CON}:/home/flecsi
#- docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
#- docker push "${CI_COMMIT_REF_SLUG}:${DISTRO}_${RUNTIME}${TAG}