[Tarantool-patches] [PATCH v1] gitlab-ci: integration testting connectors

Oleg Piskunov o.piskunov at tarantool.org
Thu May 21 18:29:55 MSK 2020



- Adding new stage "integration_test" for integration
  testing connectors and modules with Tarantool.
- Adding testing connectors in Tarantool
  development cycle:
  - tarantool-python
  - asynctnt-python
  - tarantool-php
  - tarantool-java
  - tarantool-go
  - viciious-go
 
Closes #4856
---
 
Github:  https://github.com/tarantool/tarantool/tree/opiskunov/gh-4856-integration-test-connectors
Issue:  https://github.com/tarantool/tarantool/issues/4856

 .gitlab-ci.yml | 41 +++++++++++++++++++++++++++++++++++++++++
 .travis.mk     | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 95 insertions(+), 1 deletion(-)
 
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 256b368..3ab0103 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,6 @@
 stages:
   - test
+  - integration_test
   - perf
   - cleanup
 
@@ -183,6 +184,46 @@ freebsd_12_release:
   script:
     - ${GITLAB_MAKE} vms_test_freebsd
 
+# ###################
+# Integration testing
+# ###################
+
+release_connector_python_asynctnt_test:
+  <<: *docker_test_definition
+  stage: integration_test
+  script:
+    - ${GITLAB_MAKE} test_connector_python_asynctnt
+
+release_connector_python_tarantool_test:
+  <<: *docker_test_definition
+  stage: integration_test
+  script:
+    - ${GITLAB_MAKE} test_connector_python_tarantool
+
+release_connector_go_tarantool_test:
+  <<: *docker_test_definition
+  stage: integration_test
+  script:
+    - ${GITLAB_MAKE} test_connector_go_tarantool
+
+release_connector_go_viciious_test:
+  <<: *docker_test_definition
+  stage: integration_test
+  script:
+    - ${GITLAB_MAKE} test_connector_go_viciious
+
+release_connector_php_tarantool_test:
+  <<: *docker_test_definition
+  stage: integration_test
+  script:
+    - ${GITLAB_MAKE} test_connector_php_tarantool
+
+release_connector_java_tarantool_test:
+  <<: *docker_test_definition
+  stage: integration_test
+  script:
+    - ${GITLAB_MAKE} test_connector_java_tarantool
+
 # ####
 # Perf
 # ####
diff --git a/.travis.mk b/.travis.mk
index 063537f..024351e 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -77,7 +77,7 @@ deps_buster_clang_8: deps_debian
 # Release
 
 build_debian:
-       cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
+       cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON -DENABLE_DIST=ON ${CMAKE_EXTRA_PARAMS}
        make -j
 
 test_debian_no_deps: build_debian
@@ -87,6 +87,59 @@ test_debian: deps_debian test_debian_no_deps
 
 test_debian_clang8: deps_debian deps_buster_clang_8 test_debian_no_deps
 
+# Integration testing
+
+test_connector_python_asynctnt: build_debian
+       make install
+       apt-get install -y python3-pip python3-dev pandoc python3-setuptools
+       git clone --depth=1  --recurse-submodules https://github.com/igorcoding/asynctnt.git asynctnt-python
+       cd asynctnt-python && pip3 install -r requirements.txt && export PYTHON=python3 \
+               && make && pip3 install -e . && make quicktest
+
+test_connector_python_tarantool: build_debian
+       make install
+       git clone --depth=1 https://github.com/tarantool/tarantool-python.git tarantool-python
+       cd tarantool-python && pip install -r requirements.txt && python setup.py install \
+               && python setup.py test
+
+test_connector_go_tarantool: build_debian
+       make install
+       wget --progress=dot:mega https://dl.google.com/go/go1.10.linux-amd64.tar.gz
+       tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz
+       chmod -R a+rwx /usr/local/go
+       export PATH=/usr/local/go/bin:$$PATH && export GOPATH=/usr/local/go/go-tarantool \
+               && go get github.com/tarantool/go-tarantool \
+               && cd /usr/local/go/go-tarantool/src/github.com/tarantool/go-tarantool \
+               && mkdir snap xlog && (tarantool config.lua &) && go test -v .
+
+test_connector_go_viciious: build_debian
+       make install
+       wget --progress=dot:mega https://dl.google.com/go/go1.10.linux-amd64.tar.gz
+       tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz
+       chmod -R a+rwx /usr/local/go
+       export PATH=/usr/local/go/bin:$$PATH && export GOPATH=/usr/local/go/go-tarantool \
+               && export GOBIN=$$GOPATH/bin && go get github.com/viciious/go-tarantool \
+               && cd /usr/local/go/go-tarantool/src/github.com/viciious/go-tarantool \
+               && mkdir log && export TNT_LOG_DIR=`pwd`/log && go test -v .
+
+test_connector_php_tarantool: build_debian
+       make install
+       apt-get update && apt-get install -y lsb-release
+       wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
+       echo "deb https://packages.sury.org/php/ $$(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
+       apt-get update && apt-get install -y php7.4 php7.4-dev php7.4-xml
+       curl -SsLf -o /usr/local/bin/phpunit https://phar.phpunit.de/phpunit-9.phar
+       chmod a+x /usr/local/bin/phpunit
+       git clone --depth=1 https://github.com/tarantool/tarantool-php.git --branch=php7-v2 tarantool-php
+       cd tarantool-php && phpize && ./configure \
+               && make && make install && /usr/bin/python test-run.py
+
+test_connector_java_tarantool: build_debian
+       make install
+       apt-get update && apt-get install -y openjdk-8-jre openjdk-8-jdk
+       git clone --depth=1 https://github.com/tarantool/tarantool-java.git tarantool-java
+       cd tarantool-java && ./mvnw clean test && ./mvnw clean verify
+
 # Debug with coverage
 
 build_coverage_debian:
--
1.8.3.1
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20200521/1a74e4ba/attachment.html>


More information about the Tarantool-patches mailing list