From: "Alexander V. Tikhonov" <avtikhon@tarantool.org>
To: Alexander Turenko <alexander.turenko@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH v2 1/2] gitlab-ci: save failed test results files
Date: Thu, 17 Sep 2020 11:04:02 +0300 [thread overview]
Message-ID: <ab7df4e9efa6ffcea626f76e3a9fc0b8708f9d10.1600329681.git.avtikhon@tarantool.org> (raw)
In-Reply-To: <cover.1600329681.git.avtikhon@tarantool.org>
In-Reply-To: <cover.1600329681.git.avtikhon@tarantool.org>
Added artifacts saver to all gitlab-ci jobs with testing.
Gitlab-ci jobs saves its results files in the following paths:
1. base jobs for testing different features:
- test/<suite>/*.reject
- test/var/artifacts
2. OSX jobs:
- test/<suite>/*.reject
- ${OSX_VARDIR}/artifacts/*
3. pack/deploy jobs:
- build/usr/src/*/tarantool-*/test/*/*.reject
- build/usr/src/*/tarantool-*/test/var/artifacts
4. VBOX jobs (freebsd_12) on virtual host:
- ~/tarantool/test/*/*.reject
- ~/tarantool/test/var/artifacts
Due to gitlab-ci jobs have different places of testings in patch
added 'after_script' instructions which collects it to the common
place known by gitlab-ci artifactory patterns. It will provide
gitlab-ci to have the same format of artifacts paths in its packages.
Gitlab-ci artifacts saves all found *.reject files in format:
test/<suite>/*.reject
Also it saves logs files collected by test-run in artifacts
directory in format:
test/var/artifacts
After each finished failed gitlab-ci job, user would be able to
download these files from it using gitlab-ci GUI.
Additionally added OSX_VARDIR environment variable to be able to
setup common path for artifacts and OSX shell scripts options.
OSX_VARDIR: /tmp/tnt
Part of #5050
---
.gitlab-ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
.travis.mk | 6 +++---
2 files changed, 49 insertions(+), 5 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 712e248fe..5a00641d9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,6 +12,7 @@ variables:
GITLAB_MAKE: "make -f .gitlab.mk"
GIT_STRATEGY: none
GIT_CLEAN_FLAGS: none
+ OSX_VARDIR: /tmp/tnt
# 1. Git checkout strategy used from:
# https://docs.gitlab.com/ee/ci/yaml/README.html#git-checkout
@@ -35,6 +36,17 @@ before_script:
# Jobs templates
+.artifacts_reject_files_template: &artifacts_reject_files_definition
+ artifacts:
+ expire_in: 1000 yrs
+ when: always
+ paths:
+ # default paths to reject files and logs
+ - "test/*/*.reject"
+ - "test/var/artifacts/*"
+ # OSX jobs paths to logs, reject files are allready in default locations
+ - "${OSX_VARDIR}/artifacts/*"
+
.deploy_only_template: &deploy_only_definition
only:
- master
@@ -65,12 +77,26 @@ before_script:
stage: test
tags:
- docker_test
+ <<: *artifacts_reject_files_definition
.docker_test_clang8_template: &docker_test_clang8_definition
image: "${CI_REGISTRY}/${CI_PROJECT_PATH}/testing/debian-buster:latest"
stage: test
tags:
- docker_test
+ <<: *artifacts_reject_files_definition
+
+.pack_artifacts_reject_files_template: &pack_artifacts_reject_files_definition
+ <<: *artifacts_reject_files_definition
+ after_script:
+ - >
+ for f in `ls build/usr/src/*/tarantool-*/test/*/*.reject` ; do
+ d=`dirname $f | sed 's#^build/usr/src/.*/tarantool-.*/test/##g'` ;
+ mkdir -p test/$d 2>/dev/null ;
+ cp $f test/$d/. ;
+ done ;
+ rm -rf test/var ; mkdir -p test/var ;
+ cp -r build/usr/src/*/tarantool-*/test/var/artifacts test/var/.
.pack_template: &pack_definition
<<: *pack_only_definition
@@ -87,6 +113,7 @@ before_script:
- deploy_test
script:
- ${GITLAB_MAKE} package
+ <<: *pack_artifacts_reject_files_definition
.deploy_template: &deploy_definition
<<: *deploy_only_definition
@@ -103,16 +130,33 @@ before_script:
- deploy_test
script:
- ${GITLAB_MAKE} deploy
+ <<: *pack_artifacts_reject_files_definition
.osx_template: &osx_definition
stage: test
script:
- ${GITLAB_MAKE} test_osx
+ after_script:
+ # Artifacts can't be used from outside the project directory, check:
+ # https://docs.gitlab.com/ee/ci/yaml/README.html#artifactspaths
+ # "Paths are relative to the project directory ($CI_PROJECT_DIR)"
+ # "and can’t directly link outside it."
+ - rm -rf test/var ; mkdir test/var && cp -rf ${OSX_VARDIR}/artifacts test/var/.
+ <<: *artifacts_reject_files_definition
.vbox_template: &vbox_definition
stage: test
after_script:
- - ${GITLAB_MAKE} vms_shutdown
+ - >
+ for f in `ssh ${VMS_USER}@127.0.0.1 -p ${VMS_PORT} ls tarantool/test/*/*.reject` ; do
+ d=`dirname $f | sed 's#^tarantool/##g'` ;
+ mkdir -p $d 2>/dev/null ;
+ scp -P ${VMS_PORT} ${VMS_USER}@127.0.0.1:tarantool/$d/*.reject $d/.
+ done ;
+ rm -rf test/var ; mkdir -p test/var ;
+ scp -r -P ${VMS_PORT} ${VMS_USER}@127.0.0.1:tarantool/test/var/artifacts test/var/. ;
+ ${GITLAB_MAKE} vms_shutdown
+ <<: *artifacts_reject_files_definition
.perf_docker_test_template: &perf_docker_test_definition
<<: *perf_only_definition
@@ -567,7 +611,7 @@ static_build_cmake_linux:
- ${GITLAB_MAKE} test_static_build_cmake_linux
static_build_cmake_osx_15:
- stage: test
+ <<: *osx_definition
tags:
- osx_15
script:
diff --git a/.travis.mk b/.travis.mk
index 58d0c1596..db457bf56 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -217,11 +217,11 @@ INIT_TEST_ENV_OSX=\
launchctl limit maxproc || : ; \
ulimit -u ${MAX_PROC} || : ; \
ulimit -u ; \
- rm -rf /tmp/tnt
+ rm -rf ${OSX_VARDIR}
test_osx_no_deps: build_osx
${INIT_TEST_ENV_OSX}; \
- cd test && ./test-run.py --vardir /tmp/tnt --force $(TEST_RUN_EXTRA_PARAMS)
+ cd test && ./test-run.py --vardir ${OSX_VARDIR} --force $(TEST_RUN_EXTRA_PARAMS)
test_osx: deps_osx test_osx_no_deps
@@ -240,7 +240,7 @@ test_static_build_cmake_osx: base_deps_osx
cd static-build && cmake -DCMAKE_TARANTOOL_ARGS="-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DENABLE_WERROR=ON" . && \
make -j && ctest -V
${INIT_TEST_ENV_OSX}; \
- cd test && ./test-run.py --vardir /tmp/tnt \
+ cd test && ./test-run.py --vardir ${OSX_VARDIR} \
--builddir ${PWD}/static-build/tarantool-prefix/src/tarantool-build \
--force $(TEST_RUN_EXTRA_PARAMS)
--
2.17.1
next prev parent reply other threads:[~2020-09-17 8:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-17 8:04 [Tarantool-patches] [PATCH v2 0/2] " Alexander V. Tikhonov
2020-09-17 8:04 ` Alexander V. Tikhonov [this message]
2020-09-21 2:18 ` [Tarantool-patches] [PATCH v2 1/2] " Alexander Turenko
2020-09-23 6:45 ` Alexander V. Tikhonov
2020-09-17 8:04 ` [Tarantool-patches] [PATCH v2 2/2] gitlab-ci: set opensuse jobs to test group Alexander V. Tikhonov
2020-09-25 15:50 ` Kirill Yukhin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ab7df4e9efa6ffcea626f76e3a9fc0b8708f9d10.1600329681.git.avtikhon@tarantool.org \
--to=avtikhon@tarantool.org \
--cc=alexander.turenko@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH v2 1/2] gitlab-ci: save failed test results files' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox