Newer
Older
DEPS_SRC_PATH: "${CI_PROJECT_DIR}/deps/src"
DEPS_INSTALL_PATH: "${CI_PROJECT_DIR}/deps/install"
DEPS_COMMIT: "${CI_PROJECT_DIR}/deps/install/gkfs_deps_commit"
BUILD_PATH: "${CI_PROJECT_DIR}/gkfs/build"
INSTALL_PATH: "${CI_PROJECT_DIR}/gkfs/install"
INTEGRATION_TESTS_BIN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration"
INTEGRATION_TESTS_RUN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration/run"
BUILD_FWD_PATH: "${CI_PROJECT_DIR}/gkfwd/build"
INSTALL_FWD_PATH: "${CI_PROJECT_DIR}/gkfwd/install"
INTEGRATION_TESTS_FWD_BIN_PATH: "${CI_PROJECT_DIR}/gkfwd/install/share/gkfs/tests/integration"
INTEGRATION_TESTS_FWD_RUN_PATH: "${CI_PROJECT_DIR}/gkfwd/install/share/gkfs/tests/integration/run"
TESTS_BUILD_PATH: "${CI_PROJECT_DIR}/test/gkfs/build"
PYTEST: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration/pytest-venv/bin/py.test"
TESTS_BUILD_FWD_PATH: "${CI_PROJECT_DIR}/test/gkfwd/build"
PYTEST_FWD: "${CI_PROJECT_DIR}/gkfwd/install/share/gkfs/tests/integration/pytest-venv/bin/py.test"
LOG_PATH: "${CI_PROJECT_DIR}/logs"
LD_LIBRARY_PATH: "${CI_PROJECT_DIR}/deps/install/lib;${CI_PROJECT_DIR}/deps/install/lib64"
GKFS_LOG_LEVEL: "100"
GKFS_DAEMON_LOG_PATH: "${CI_PROJECT_DIR}/logs/daemon.log"
LIBGKFS_LOG: "all"
LIBGKFS_LOG_OUTPUT: "${CI_PROJECT_DIR}/logs/gkfs_client.log"
GIT_SUBMODULE_STRATEGY: recursive
# Temporary new image file
# image: gekkofs/gekkofs:build_env-0.8.0
image: jeanbez/gekkofs-forwarding:latest
compile dependencies:
stage: build deps
cache:
key: deps-cache
paths:
- ${DEPS_INSTALL_PATH}/
script:
# Folder of built dependencies is cached and marked with the ID of the commit from which have been built.
# If the download and compile script have been modified the cache gets invalidated and dependencies will be built again.
- ( [ -f "${DEPS_COMMIT}" ] && git diff --quiet "`cat ${DEPS_COMMIT}`" -- scripts/dl_dep.sh scripts/compile_dep.sh ) || (
scripts/dl_dep.sh ${DEPS_SRC_PATH} -n ofi &&
scripts/compile_dep.sh -n ofi ${DEPS_SRC_PATH} ${DEPS_INSTALL_PATH} &&
echo "${CI_COMMIT_SHA}" > "${DEPS_COMMIT}"
)
artifacts:
paths:
- ${DEPS_INSTALL_PATH}
compile GekkoFS:
stage: build
dependencies:
- "compile dependencies"
script:
- mkdir -p ${BUILD_PATH} && cd ${BUILD_PATH}
- cmake
-Wdev
-Wdeprecate
-DCMAKE_BUILD_TYPE=Debug
-DGKFS_INSTALL_TESTS:BOOL=ON
-DCMAKE_INSTALL_PREFIX=${INSTALL_PATH}
${CI_PROJECT_DIR}
- make -j$(nproc) install
compile GekkoFWD:
stage: build
dependencies:
- "compile dependencies"
script:
- mkdir -p ${BUILD_FWD_PATH} && cd ${BUILD_FWD_PATH}
- cmake
-Wdev
-Wdeprecate
-DCMAKE_BUILD_TYPE=Debug
-DGKFS_BUILD_TESTS:BOOL=ON
-DGKFS_INSTALL_TESTS:BOOL=ON
-DRPC_PROTOCOL="ofi+sockets"
-DENABLE_FORWARDING:BOOL=ON \
-DENABLE_AGIOS:BOOL=ON \
-DCMAKE_PREFIX_PATH=${DEPS_INSTALL_PATH}
-DCMAKE_INSTALL_PREFIX=${INSTALL_FWD_PATH}
${CI_PROJECT_DIR}
- make -j$(nproc) install
artifacts:
paths:
- ${INSTALL_FWD_PATH}
compile tests:
stage: build
dependencies:
- "compile dependencies"
script:
- mkdir -p ${TESTS_BUILD_PATH} && cd ${TESTS_BUILD_PATH}
- cmake -DCMAKE_BUILD_TYPE=Debug ..
- make -j$(nproc)
artifacts:
paths:
- ${TESTS_BUILD_PATH}
integration tests:
stage: test
script:
- mkdir -p ${INTEGRATION_TESTS_RUN_PATH}
- cd ${INTEGRATION_TESTS_BIN_PATH}
- TMPDIR=${INTEGRATION_TESTS_RUN_PATH} unbuffer ${PYTEST} -v | tee ${INTEGRATION_TESTS_RUN_PATH}/session.log
artifacts:
when: on_failure
paths:
- "${INTEGRATION_TESTS_RUN_PATH}"
test wr:
stage: test
script:
- mkdir -p "${LOG_PATH}"
- ${INSTALL_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- LD_PRELOAD=${INSTALL_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_PATH}/gkfs_test_wr
paths:
- "${LOG_PATH}"
test directories:
stage: test
script:
- mkdir -p "${LOG_PATH}"
- ${INSTALL_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- LD_PRELOAD=${INSTALL_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_PATH}/gkfs_test_dir
test truncate:
stage: test
script:
- mkdir -p "${LOG_PATH}"
- ${INSTALL_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- LD_PRELOAD=${INSTALL_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_PATH}/gkfs_test_truncate
test path resolution:
stage: test
script:
- mkdir -p "${LOG_PATH}"
- ${INSTALL_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- LD_PRELOAD=${INSTALL_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_PATH}/gkfs_test_path_resolution
test lseek:
stage: test
script:
- mkdir -p "${LOG_PATH}"
- ${INSTALL_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- sleep 4
- LD_PRELOAD=${INSTALL_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_PATH}/gkfs_test_lseek
artifacts:
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
test wr:
stage: test forwarding
dependencies:
- "compile GekkoFWD"
script:
- mkdir -p "${LOG_PATH}"
- cp agios/* /tmp
- echo "`hostname` 0" > gkfs_forwarding.map
- ${INSTALL_FWD_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- sleep 4
- LD_PRELOAD=${INSTALL_FWD_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_FWD_PATH}/gkfs_test_wr
artifacts:
when: on_failure
paths:
- "${LOG_PATH}"
test directories:
stage: test forwarding
dependencies:
- "compile GekkoFWD"
script:
- mkdir -p "${LOG_PATH}"
- cp agios/* /tmp
- echo "`hostname` 0" > gkfs_forwarding.map
- ${INSTALL_FWD_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- sleep 4
- LD_PRELOAD=${INSTALL_FWD_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_FWD_PATH}/gkfs_test_dir
artifacts:
when: on_failure
paths:
- "${LOG_PATH}"
test truncate:
stage: test forwarding
dependencies:
- "compile GekkoFWD"
script:
- mkdir -p "${LOG_PATH}"
- cp agios/* /tmp
- echo "`hostname` 0" > gkfs_forwarding.map
- ${INSTALL_FWD_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- sleep 4
- LD_PRELOAD=${INSTALL_FWD_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_FWD_PATH}/gkfs_test_truncate
artifacts:
when: on_failure
paths:
- "${LOG_PATH}"
test path resolution:
stage: test forwarding
dependencies:
- "compile GekkoFWD"
script:
- mkdir -p "${LOG_PATH}"
- cp agios/* /tmp
- echo "`hostname` 0" > gkfs_forwarding.map
- ${INSTALL_FWD_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- sleep 4
- LD_PRELOAD=${INSTALL_FWD_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_FWD_PATH}/gkfs_test_path_resolution
artifacts:
when: on_failure
paths:
- "${LOG_PATH}"
test lseek:
stage: test forwarding
dependencies:
- "compile GekkoFWD"
script:
- mkdir -p "${LOG_PATH}"
- cp agios/* /tmp
- echo "`hostname` 0" > gkfs_forwarding.map
- ${INSTALL_FWD_PATH}/bin/gkfs_daemon --mount /tmp/mountdir --root /tmp/root &
- sleep 4
- LD_PRELOAD=${INSTALL_FWD_PATH}/lib/libgkfs_intercept.so ${TESTS_BUILD_FWD_PATH}/gkfs_test_lseek
artifacts:
when: on_failure
paths:
- "${LOG_PATH}"