[tarantool-patches] [PATCH v1] Gitlab-ci testing process implement
Alexander V. Tikhonov
avtikhon at tarantool.org
Thu May 30 13:14:02 MSK 2019
From: avtikhon <avtikhon at gmail.com>
Complete testing process equal to the current travis-ci prepared.
Closes #4156
---
Gitlab-ci: https://gitlab.com/tarantool/tarantool/pipelines/63905818
Issue: https://github.com/tarantool/tarantool/issues/4156
.gitlab-ci.yml | 554 ++++++++++++++++++++++++++++
.travis.mk | 43 ++-
.travis.yml | 133 -------
images/Dockerfile.debian | 4 +
images/Dockerfile.lto | 5 +
images/Dockerfile.ubuntu_perf | 59 +++
images/Dockerfile.ubuntu_perf_build | 14 +
perf/run-tarantool-server.sh | 13 +
perf/tarantool-server.lua | 26 ++
test/box/suite.ini | 2 +-
10 files changed, 706 insertions(+), 147 deletions(-)
create mode 100644 .gitlab-ci.yml
delete mode 100644 .travis.yml
create mode 100644 images/Dockerfile.debian
create mode 100644 images/Dockerfile.lto
create mode 100644 images/Dockerfile.ubuntu_perf
create mode 100644 images/Dockerfile.ubuntu_perf_build
create mode 100755 perf/run-tarantool-server.sh
create mode 100644 perf/tarantool-server.lua
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..d37c4681e
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,554 @@
+stages:
+ - bootstrap
+ - test
+ - perf_deploy
+
+variables:
+ # Docker
+ DCKLGN: "docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}"
+ DCKBLD: "docker build --network=host"
+ DCKPSH: "docker push"
+ # Build
+ FLAG_LTO: "-DENABLE_LTO=ON"
+ GITCLN: "git submodule update --recursive --init --force"
+ TRAVMK: "make -f .travis.mk"
+ # Images
+ TVER: "master"
+ IMGUBB_BST: "${CI_REGISTRY}/${CI_PROJECT_PATH}:ubuntu-bionic_perf"
+ IMGUBB_BLT: "${CI_REGISTRY}/${CI_PROJECT_PATH}:ubuntu-bionic_perf_${TVER}"
+ IMGDBS_BST: "${CI_REGISTRY}/${CI_PROJECT_PATH}:debian-stretch_${TVER}"
+ IMGDBB_BST: "${CI_REGISTRY}/${CI_PROJECT_PATH}:debian-buster_${TVER}"
+ # OSX
+ OSX_SSH: "ssh -A tarantool at 127.0.0.1 -p 2222"
+ OSX_SSHENV: "export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
+ OSX_GITCHK: "git fetch -p && git checkout --force ${CI_BUILD_REF} && ${GITCLN}"
+ # Pack
+ PACKCLO: "git clone https://github.com/packpack/packpack.git packpack"
+ PACKMK: "make -f packpack/pack/Makefile -C . BUILDDIR=$PWD/build -j"
+
+# Bootstraps
+
+debian9:
+ stage: bootstrap
+ tags:
+ - bootstrap
+ before_script:
+ - ${DCKLGN}
+ script:
+ - cp .travis.mk images/
+ - ${DCKBLD} -t ${IMGDBS_BST} -f images/Dockerfile.debian images
+ - ${DCKPSH} ${IMGDBS_BST}
+
+debian10_lto:
+ only:
+ refs:
+ - master
+ stage: bootstrap
+ tags:
+ - bootstrap
+ before_script:
+ - ${DCKLGN}
+ script:
+ - cp .travis.mk images/
+ - ${DCKBLD} -t ${IMGDBB_BST} -f images/Dockerfile.lto images
+ - ${DCKPSH} ${IMGDBB_BST}
+
+# Tests
+
+release:
+ image: ${IMGDBS_BST}
+ stage: test
+ tags:
+ - docker_test
+ script:
+ - ${GITCLN}
+ - ${TRAVMK} runtest_ubuntu
+
+debug:
+ image: ${IMGDBS_BST}
+ stage: test
+ tags:
+ - docker_test
+ script:
+ - ${GITCLN}
+ - ${TRAVMK} runtest_cov_ubuntu
+
+release_clang:
+ image: ${IMGDBS_BST}
+ stage: test
+ tags:
+ - docker_test
+ variables:
+ CC: clang
+ CXX: clang++
+ script:
+ - ${GITCLN}
+ - ${TRAVMK} runtest_ubuntu
+
+release_lto:
+ only:
+ refs:
+ - master
+ image: ${IMGDBB_BST}
+ stage: test
+ tags:
+ - docker_test
+ variables:
+ CMAKE_EXTRA_PARAMS: ${FLAG_LTO}
+ script:
+ - ${GITCLN}
+ - ${TRAVMK} runtest_ubuntu
+
+release_lto_clang8:
+ only:
+ refs:
+ - master
+ image: ${IMGDBB_BST}
+ stage: test
+ tags:
+ - docker_test
+ variables:
+ CC: clang-8
+ CXX: clang++-8
+ CMAKE_EXTRA_PARAMS: ${FLAG_LTO}
+ script:
+ - ${GITCLN}
+ - ${TRAVMK} runtest_ubuntu
+
+osx13_release:
+ only:
+ refs:
+ - master
+ stage: test
+ tags:
+ - osx
+ before_script:
+ - VBoxManage controlvm Sierra poweroff || true
+ - VBoxManage snapshot Sierra restore Sierra
+ - VBoxManage startvm Sierra --type headless
+ script:
+ - export
+ - ${OSX_SSH} "/bin/bash -c '${OSX_SSHENV} ; cd tarantool && ${OSX_GITCHK} && ${TRAVMK} test_osx'"
+ after_script:
+ - VBoxManage controlvm Sierra poweroff
+
+osx14_release:
+ stage: test
+ tags:
+ - osx
+ before_script:
+ - VBoxManage controlvm Mojave poweroff || true
+ - VBoxManage snapshot Mojave restore Mojave
+ - VBoxManage startvm Mojave --type headless
+ script:
+ - export
+ - ${OSX_SSH} "/bin/bash -c '${OSX_SSHENV} ; cd tarantool && ${OSX_GITCHK} && ${TRAVMK} test_osx'"
+ after_script:
+ - VBoxManage controlvm Mojave poweroff
+
+osx14_release_lto:
+ only:
+ refs:
+ - master
+ stage: test
+ tags:
+ - osx
+ before_script:
+ - VBoxManage controlvm Mojave poweroff || true
+ - VBoxManage snapshot Mojave restore Mojave
+ - VBoxManage startvm Mojave --type headless
+ script:
+ - export
+ - ${OSX_SSH} "/bin/bash -c '${OSX_SSHENV} ; export CMAKE_EXTRA_PARAMS=${FLAG_LTO} ; cd tarantool && ${OSX_GITCHK} && ${TRAVMK} test_osx'"
+ after_script:
+ - VBoxManage controlvm Mojave poweroff
+
+# Perf prepare
+
+perf_bootstrap:
+ only:
+ refs:
+ - master
+ - /.*-perf/
+ - /.*-perflong/
+ stage: test
+ tags:
+ - perf
+ before_script:
+ - ${DCKLGN}
+ script:
+ # !!! TEMPORARY !!!
+ - cp -rfp /home/aleks.tikhonov/Workspaces/runners images/.
+ - ${DCKBLD} -t ${IMGUBB_BST} -f images/Dockerfile.ubuntu_perf images
+ - ${DCKPSH} ${IMGUBB_BST}
+ - ${DCKBLD} -t ${IMGUBB_BLT} -f images/Dockerfile.ubuntu_perf_build .
+ - ${DCKPSH} ${IMGUBB_BLT}
+
+# Perf sysbench 1 *perf/*perflong + 2 *perflong
+
+perf_sysbench:
+ only:
+ refs:
+ - master
+ - /.*-perf/
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - perf/run-tarantool-server.sh
+ - THREADS=4 /opt/runners/sysbench-benchmarking/run.sh
+
+perf_sysbench_1:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - perf/run-tarantool-server.sh
+ - THREADS=4 /opt/runners/sysbench-benchmarking/run.sh
+
+perf_sysbench_2:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - perf/run-tarantool-server.sh
+ - THREADS=4 /opt/runners/sysbench-benchmarking/run.sh
+
+# Perf tpcc 1 *perf/*perflong + 2 *perflong
+
+perf_tpcc:
+ only:
+ refs:
+ - master
+ - /.*-perf/
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/tpcc-benchmarking/run.sh
+
+perf_tpcc_1:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/tpcc-benchmarking/run.sh
+
+perf_tpcc_2:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/tpcc-benchmarking/run.sh
+
+# Perf ycsb 1 *perf + 1*5 *perflong
+
+perf_ycsb:
+ only:
+ refs:
+ - master
+ - /.*-perf/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/ycsb-benchmarking/run.sh
+
+perf_ycsb_1..5:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/ycsb-benchmarking/run.sh 5
+
+# Perf nosqlbench 1 *perf/*perflong + 4 *perflong
+
+perf_nosqlbench:
+ only:
+ refs:
+ - master
+ - /.*-perf/
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/nosqlbench-benchmarking/run.sh
+
+perf_nosqlbench_1:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/nosqlbench-benchmarking/run.sh
+
+perf_nosqlbench_2:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/nosqlbench-benchmarking/run.sh
+
+perf_nosqlbench_3:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/nosqlbench-benchmarking/run.sh
+
+perf_nosqlbench_4:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/nosqlbench-benchmarking/run.sh
+
+# Perf cbench 1 *perf/*perflong + 2 *perflong
+
+perf_cbench:
+ only:
+ refs:
+ - master
+ - /.*-perf/
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/cbench-benchmarking/run.sh
+
+perf_cbench_1:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/cbench-benchmarking/run.sh
+
+perf_cbench_2:
+ only:
+ refs:
+ - /.*-perflong/
+ image: ${IMGUBB_BLT}
+ stage: perf_deploy
+ tags:
+ - docker_perf
+ script:
+ - /opt/runners/cbench-benchmarking/run.sh
+
+# Packs
+
+pack_cent6:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:el-6
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - git submodule update --recursive --init
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_cent7:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:el-7
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_fedora28:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:fedora-28
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_fedora29:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:fedora-29
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_fedora30:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:fedora-30
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_ubuntu14:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:ubuntu-trusty
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_ubuntu16:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:ubuntu-xenial
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_ubuntu18:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:ubuntu-bionic
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_ubuntu1810:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:ubuntu-cosmic
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_ubuntu19:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:ubuntu-disco
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_debian8:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:debian-jessie
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_debian9:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:debian-stretch
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
+
+pack_debian10:
+ only:
+ refs:
+ - master
+ image: packpack/packpack:debian-buster
+ stage: perf_deploy
+ tags:
+ - deploy
+ script:
+ - ${GITCLN}
+ - ${PACKCLO}
+ - ${PACKMK}
diff --git a/.travis.mk b/.travis.mk
index 55bee9980..92d3e7e65 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -34,24 +34,36 @@ docker_%:
make -f .travis.mk $(subst docker_,,$@)
deps_ubuntu:
- sudo apt-get update && apt-get install -y -f \
+ apt-get -y update && apt-get install -y -f \
build-essential cmake coreutils sed \
libreadline-dev libncurses5-dev libyaml-dev libssl-dev \
libcurl4-openssl-dev libunwind-dev libicu-dev \
python python-pip python-setuptools python-dev \
python-msgpack python-yaml python-argparse python-six python-gevent \
- lcov ruby clang llvm llvm-dev
+ lcov ruby clang llvm llvm-dev mdm
-test_ubuntu: deps_ubuntu
+deps_buster_clang_8:
+ echo "deb http://apt.llvm.org/buster/ llvm-toolchain-buster-8 main" > /etc/apt/sources.list.d/clang_8.list
+ echo "deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-8 main" >> /etc/apt/sources.list.d/clang_8.list
+ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
+ apt-get -y update
+ apt-get -y install clang-8 llvm-8 llvm-8-dev
+
+build_ubuntu:
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
- make -j8
- cd test && /usr/bin/python test-run.py --force -j 1
+ make -j
+
+runtest_ubuntu: build_ubuntu
+ cd test && /usr/bin/python test-run.py --force -j $$((`ncpus`*2)) --no-output-timeout -1
+
+test_ubuntu: deps_ubuntu runtest_ubuntu
deps_osx:
brew update
- brew install openssl readline curl icu4c --force
- curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | python
- pip install -r test-run/requirements.txt
+ brew install openssl readline curl icu4c cmake --force || true
+ curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py >get-pip.py
+ python get-pip.py --user
+ pip install --user --ignore-installed -r test-run/requirements.txt
test_osx: deps_osx
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
@@ -61,14 +73,17 @@ test_osx: deps_osx
sudo launchctl limit maxfiles 20480 || :
ulimit -S -n 20480 || :
ulimit -n
- make -j8
- cd test && python test-run.py --force -j 1 unit/ app/ app-tap/ box/ box-tap/
+ make -j
+ cd test && TRAVIS=True python test-run.py --force -j $$((`sysctl -n hw.ncpu`*2)) unit/ app/ app-tap/ box/ box-tap/
-coverage_ubuntu: deps_ubuntu
+build_cov_ubuntu:
cmake . -DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=ON
- make -j8
+ find -name "*.gcda" -exec rm -rf {} \;
+ make -j
+
+runtest_cov_ubuntu: build_cov_ubuntu
# Enable --long tests for coverage
- cd test && /usr/bin/python test-run.py --force -j 1 --long
+ cd test && /usr/bin/python test-run.py --force -j $$((`ncpus`*2)) --long --no-output-timeout -1
lcov --compat-libtool --directory src/ --capture --output-file coverage.info.tmp
lcov --compat-libtool --remove coverage.info.tmp 'tests/*' 'third_party/*' '/usr/*' \
--output-file coverage.info
@@ -80,6 +95,8 @@ coverage_ubuntu: deps_ubuntu
coveralls-lcov --service-name travis-ci --service-job-id $(TRAVIS_JOB_ID) --repo-token $(COVERALLS_TOKEN) coverage.info; \
fi;
+coverage_ubuntu: deps_ubuntu runtest_cov_ubuntu
+
source:
git clone https://github.com/packpack/packpack.git packpack
TARBALL_COMPRESSOR=gz packpack/packpack tarball
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index e94d02ef5..000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,133 +0,0 @@
-sudo: false
-services:
- - docker
-
-language: cpp
-
-# default values
-os: linux
-compiler: gcc
-
-osx_image: xcode10.2
-
-cache:
- directories:
- - $HOME/.cache
-
-git:
- depth: 100500
-
-jobs:
- include:
- # Testing targets (just run tests on Debian Stretch or OS X).
- - name: "RelWithDebInfo build + test (Linux, gcc)"
- env: TARGET=test
- - name: "RelWithDebInfo build + test (Linux, clang)"
- env: TARGET=test
- compiler: clang
- - name: "RelWithDebInfo build + test (OS X Mojave 10.14)"
- env: TARGET=test
- os: osx
- - name: "Debug build + test + coverage (Linux, gcc)"
- env: TARGET=coverage
- - name: "RelWithDebInfo build + test (OS X High Sierra 10.13)"
- env: TARGET=test
- os: osx
- osx_image: xcode9.4
- if: branch = "master"
- # Special targets (only LTO for now).
- - name: "LTO build + test (Linux, gcc)"
- env: >
- TARGET=test
- CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
- DOCKER_IMAGE=packpack/packpack:debian-buster
- if: branch = "master"
- - name: "LTO build + test (Linux, clang)"
- env: >
- TARGET=test
- CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
- DOCKER_IMAGE=packpack/packpack:debian-buster
- if: branch = "master"
- compiler: clang
- - name: "LTO build + test (OS X Mojave 10.14)"
- os: osx
- env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
- if: branch = "master"
- # Deploy targets (they also catch distro-specific problems).
- - name: "Create and deploy tarball"
- env: TARGET=source
- if: branch = "master"
- - name: "CentOS 6 build + deploy RPM"
- env: OS=el DIST=6
- if: branch = "master"
- - name: "CentOS 7 build + test + deploy RPM"
- env: OS=el DIST=7
- if: branch = "master"
- - name: "Fedora 28 build + test + deploy RPM"
- env: OS=fedora DIST=28
- if: branch = "master"
- - name: "Fedora 29 build + test + deploy RPM"
- env: OS=fedora DIST=29
- if: branch = "master"
- - name: "Fedora 30 build + test + deploy RPM"
- env: OS=fedora DIST=30
- if: branch = "master"
- - name: "Ubuntu Trusty (14.04) build + deploy DEB"
- env: OS=ubuntu DIST=trusty
- if: branch = "master"
- - name: "Ubuntu Xenial (16.04) build + deploy DEB"
- env: OS=ubuntu DIST=xenial
- if: branch = "master"
- - name: "Ubuntu Bionic (18.04) build + deploy DEB"
- env: OS=ubuntu DIST=bionic
- if: branch = "master"
- - name: "Ubuntu Cosmic (18.10) build + deploy DEB"
- env: OS=ubuntu DIST=cosmic
- if: branch = "master"
- - name: "Ubuntu Disco (19.04) build + deploy DEB"
- env: OS=ubuntu DIST=disco
- if: branch = "master"
- - name: "Debian Jessie (8) build + deploy DEB"
- env: OS=debian DIST=jessie
- if: branch = "master"
- - name: "Debian Stretch (9) build + deploy DEB"
- env: OS=debian DIST=stretch
- if: branch = "master"
- - name: "Debian Buster (10) build + deploy DEB"
- env: OS=debian DIST=buster
- if: branch = "master"
-
-script:
- - make -f .travis.mk ${TARGET}
-
-before_deploy:
- - ls -l build/
-
-deploy:
- # Deploy packages to PackageCloud
- - provider: packagecloud
- username: "tarantool"
- repository: "2_2"
- token: "${PACKAGECLOUD_TOKEN}"
- dist: "${OS}/${DIST}"
- package_glob: build/*.{rpm,deb,dsc}
- skip_cleanup: true
- on:
- repo: tarantool/tarantool
- branch: "master"
- condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}"
- # Deploy source tarballs to S3
- - provider: script
- script: make -f .travis.mk source_deploy
- skip_cleanup: true
- on:
- repo: tarantool/tarantool
- branch: "master"
- condition: "x${TARGET} = xsource"
-
-notifications:
- email:
- recipients:
- - build at tarantool.org
- on_success: change
- on_failure: always
diff --git a/images/Dockerfile.debian b/images/Dockerfile.debian
new file mode 100644
index 000000000..eb5278343
--- /dev/null
+++ b/images/Dockerfile.debian
@@ -0,0 +1,4 @@
+FROM packpack/packpack:debian-stretch
+
+COPY .travis.mk .
+RUN make -f .travis.mk deps_ubuntu
diff --git a/images/Dockerfile.lto b/images/Dockerfile.lto
new file mode 100644
index 000000000..54c585acc
--- /dev/null
+++ b/images/Dockerfile.lto
@@ -0,0 +1,5 @@
+FROM packpack/packpack:debian-buster
+
+COPY .travis.mk .
+RUN make -f .travis.mk deps_ubuntu
+RUN make -f .travis.mk deps_buster_clang_8
diff --git a/images/Dockerfile.ubuntu_perf b/images/Dockerfile.ubuntu_perf
new file mode 100644
index 000000000..0541746de
--- /dev/null
+++ b/images/Dockerfile.ubuntu_perf
@@ -0,0 +1,59 @@
+FROM ubuntu:18.04
+
+RUN apt-get -y update && apt-get install -y -f \
+ numactl gcc libc6-dev zlib1g-dev make libmysqlclient-dev \
+ ssh vim git dh-autoreconf pkg-config libicu-dev \
+ build-essential cmake coreutils sed libreadline-dev \
+ libncurses5-dev libyaml-dev libssl-dev libcurl4-openssl-dev \
+ libunwind-dev python python-pip python-setuptools python-dev \
+ python-msgpack python-yaml python-argparse python-six python-gevent \
+ gdb net-tools
+
+# benchmark-runners
+# !!! TEMPORARY !!!
+#RUN git clone https://gitlab.com/tarantool/tarantool-benchmarks-runner.git \
+# /opt/runners && \
+COPY runners /opt/runners
+
+# tarantool-c
+RUN git clone --recursive https://github.com/tarantool/tarantool-c.git \
+ /opt/tarantool-c
+WORKDIR /opt/tarantool-c/third_party/msgpuck/
+RUN cmake . && make && make install
+WORKDIR /opt/tarantool-c
+RUN cmake . && make -j && make install
+
+# msgpack-c
+RUN git clone https://github.com/msgpack/msgpack-c.git /opt/msgpack-c
+WORKDIR /opt/msgpack-c
+RUN cmake . && make -j && make install
+
+# sysbench
+RUN git clone https://github.com/iproha94/sysbench.git /opt/sysbench
+WORKDIR /opt/sysbench
+RUN ./autogen.sh && ./configure --with-tarantool --without-mysql && \
+ make -j && make install && \
+ sed 's# CHAR(# VARCHAR(#g' -i /opt/sysbench/src/lua/oltp_common.lua && \
+ cp /opt/sysbench/src/lua/oltp_common.lua \
+ /usr/local/share/sysbench/oltp_common.lua
+
+# tpcc-tarantool
+RUN git clone https://github.com/tarantool/tpcc.git /opt/tpcc
+WORKDIR /opt/tpcc/src
+RUN make
+
+# YCSB
+RUN git clone https://github.com/brianfrankcooper/YCSB.git /opt/ycsb
+RUN apt-get update -y && apt-get install gtk-update-icon-cache=3.22.30-1ubuntu3 || true
+RUN apt-get install --fix-missing -y -f default-jdk maven
+WORKDIR /opt/ycsb
+RUN mvn -pl com.yahoo.ycsb:tarantool-binding -am clean package
+
+# nosqlbench
+RUN git clone --recursive https://github.com/tarantool/nosqlbench.git \
+ /opt/nosqlbench
+WORKDIR /opt/nosqlbench
+RUN git submodule foreach --recursive git pull origin master
+RUN apt-get install -y -f libev-dev
+RUN cmake . && make -j
+
diff --git a/images/Dockerfile.ubuntu_perf_build b/images/Dockerfile.ubuntu_perf_build
new file mode 100644
index 000000000..4f14b5469
--- /dev/null
+++ b/images/Dockerfile.ubuntu_perf_build
@@ -0,0 +1,14 @@
+FROM registry.gitlab.com/tarantool/tarantool:ubuntu-bionic_perf
+
+COPY . /opt/tarantool
+WORKDIR /opt/tarantool
+RUN git submodule update --recursive --init --force
+RUN cmake . -DENABLE_DIST=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo >cmake.log && make -j >build.log && make install >install.log
+
+# cbench
+RUN git clone https://github.com/tarantool/cbench.git /opt/cbench
+WORKDIR /opt/cbench
+RUN cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo && make && make install
+
+# reset the workdir to tarantool path
+WORKDIR /opt/tarantool
diff --git a/perf/run-tarantool-server.sh b/perf/run-tarantool-server.sh
new file mode 100755
index 000000000..f43c2427f
--- /dev/null
+++ b/perf/run-tarantool-server.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+numactl --show
+numactl --hardware
+numactl --cpunodebind=1 --physcpubind=6,7,8,9,10,11 tarantool perf/tarantool-server.lua 2>&1
+
+STATUS=
+while [ ${#STATUS} -eq "0" ]; do
+ STATUS="$(echo box.info.status | tarantoolctl connect /tmp/tarantool-server.sock | grep -e "- running")"
+ echo "waiting load snapshot to tarantool..."
+ sleep 5
+done
+
diff --git a/perf/tarantool-server.lua b/perf/tarantool-server.lua
new file mode 100644
index 000000000..a0de7d932
--- /dev/null
+++ b/perf/tarantool-server.lua
@@ -0,0 +1,26 @@
+local console = require('console')
+console.listen("/tmp/tarantool-server.sock")
+
+box.cfg {
+ pid_file = "./tarantool-server.pid",
+ log = "./tarantool-server.log",
+ listen = 3301,
+ memtx_memory = 2000000000,
+ background = true,
+ checkpoint_interval = 0,
+}
+
+
+function try(f, catch_f)
+ local status, exception = pcall(f)
+ if not status then
+ catch_f(exception)
+ end
+end
+
+try(function()
+ box.schema.user.grant('guest', 'create,read,write,execute', 'universe')
+end, function(e)
+ print(e)
+end)
+
diff --git a/test/box/suite.ini b/test/box/suite.ini
index c7b75c173..5efad688f 100644
--- a/test/box/suite.ini
+++ b/test/box/suite.ini
@@ -2,7 +2,7 @@
core = tarantool
description = Database tests
script = box.lua
-disabled = rtree_errinj.test.lua tuple_bench.test.lua
+disabled = rtree_errinj.test.lua tuple_bench.test.lua on_shutdown.test.lua
release_disabled = errinj.test.lua errinj_index.test.lua rtree_errinj.test.lua upsert_errinj.test.lua iproto_stress.test.lua
lua_libs = lua/fifo.lua lua/utils.lua lua/bitset.lua lua/index_random_test.lua lua/push.lua lua/identifier.lua
use_unix_sockets = True
--
2.17.1
More information about the Tarantool-patches
mailing list