[Tarantool-patches] [PATCH v2] gitlab-ci: implement OSX 10.14 testing on mac mini

Alexander V. Tikhonov avtikhon at tarantool.org
Thu Feb 27 13:30:12 MSK 2020


Added mac mini hosts into testing and set to it all
OSX 10.14 test jobs with new osx_14 gitlab-runner tag.
Also made additional setup:
 - added PATHs to python2 and pip
 - set 'var' directory for test-run tool to the shorter
   path name to avoid of issues with long names.
---

Github: https://github.com/tarantool/tarantool/tree/avtikhon/osx_on_mini14-full-ci

 .gitlab-ci.yml | 20 ++++++++------------
 .gitlab.mk     |  2 +-
 .travis.mk     | 45 ++++++++++++++++++++++++++++++++-------------
 3 files changed, 41 insertions(+), 26 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5177a9903..7414dd578 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -152,28 +152,24 @@ osx_13_release:
     - ${GITLAB_MAKE} vms_test_osx
 
 osx_14_release:
-  <<: *vbox_definition
+  <<: *docker_test_definition
   tags:
-    - vms_osx_14
+    - osx_14
   variables:
-    VMS_NAME: 'osx_14'
-    VMS_USER: 'tarantool'
-    VMS_PORT: '2222'
+    PYTHON2: "python"
   script:
-    - ${GITLAB_MAKE} vms_test_osx
+    - ${GITLAB_MAKE} test_osx
 
 osx_14_release_lto:
   <<: *release_only_definition
-  <<: *vbox_definition
+  <<: *docker_test_definition
   tags:
-    - vms_osx_14
+    - osx_14
   variables:
     EXTRA_ENV: "export CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON ;"
-    VMS_NAME: 'osx_14'
-    VMS_USER: 'tarantool'
-    VMS_PORT: '2222'
+    PYTHON2: "python"
   script:
-    - ${GITLAB_MAKE} vms_test_osx
+    - ${GITLAB_MAKE} test_osx
 
 freebsd_12_release:
   <<: *vbox_definition
diff --git a/.gitlab.mk b/.gitlab.mk
index b39c5c651..d804d3cf6 100644
--- a/.gitlab.mk
+++ b/.gitlab.mk
@@ -14,7 +14,7 @@ git_submodule_update:
 		git submodule update --recursive --init
 
 # Pass *_no_deps goals to .travis.mk.
-test_%_no_deps: git_submodule_update
+test_%: git_submodule_update
 	${TRAVIS_MAKE} $@
 
 # #######################################################
diff --git a/.travis.mk b/.travis.mk
index 42969ff56..90ad0b412 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -5,6 +5,7 @@
 DOCKER_IMAGE?=packpack/packpack:debian-stretch
 TEST_RUN_EXTRA_PARAMS?=
 MAX_FILES?=65534
+MAX_PROC?=4096
 
 all: package
 
@@ -127,16 +128,28 @@ test_asan_debian: deps_debian deps_buster_clang_8 test_asan_debian_no_deps
 # OSX #
 #######
 
+OSX_PKGS=openssl readline curl icu4c libiconv zlib autoconf automake libtool cmake ${PYTHON2}
+
 deps_osx:
-	brew update
-	brew install openssl readline curl icu4c libiconv zlib autoconf automake libtool --force
-	python2 -V || brew install python2 --force
-	curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py >get-pip.py
-	python get-pip.py --user
-	pip install --user --force-reinstall -r test-run/requirements.txt
+	# install brew using command from Homebrew repository instructions:
+	#   https://github.com/Homebrew/install
+	# NOTE: 'echo' command below is required since brew installation
+	# script obliges the one to enter a newline for confirming the
+	# installation via Ruby script.
+	brew update || echo | /usr/bin/ruby -e \
+		"$$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+	# try to install the packages either upgrade it to avoid of fails
+	# if the package already exists with the previous version
+	brew install --force ${OSX_PKGS} || brew upgrade ${OSX_PKGS}
+	curl --silent --show-error --retry 5 \
+		https://bootstrap.pypa.io/get-pip.py >get-pip.py
+	python get-pip.py
+	export PATH=/Users/${USER}/Library/Python/2.7/bin:${PATH} ; \
+		pip install --force-reinstall -r test-run/requirements.txt
 
 build_osx:
-	cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
+	cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+		-DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
 	make -j
 
 test_osx_no_deps: build_osx
@@ -148,13 +161,19 @@ test_osx_no_deps: build_osx
 	# call as tests runs call.
 	# Tests: Temporary excluded replication/ suite with some tests
 	#        from other suites by issues #4357 and #4370
-	echo tarantool | sudo -S launchctl limit maxfiles ${MAX_FILES} || : ; \
+	sudo -S launchctl limit maxfiles ${MAX_FILES} || : ; \
 		launchctl limit maxfiles || : ; \
-		ulimit -n ${MAX_FILES} || : ; \
-		ulimit -n ; \
-		cd test && ./test-run.py --force $(TEST_RUN_EXTRA_PARAMS) \
-			app/ app-tap/ box/ box-py/ box-tap/ engine/ engine_long/ long_run-py/ luajit-tap/ \
-			replication-py/ small/ sql/ sql-tap/ swim/ unit/ vinyl/ wal_off/ xlog/ xlog-py/
+		ulimit -n ${MAX_FILES} || : ulimit -n ; \
+		sudo -S launchctl limit maxproc ${MAX_PROC} || : ; \
+		launchctl limit maxproc || : ; \
+		ulimit -u ${MAX_PROC} || : ulimit -u ; \
+		export PATH=/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH} ; \
+		rm -rf /tmp/tnt ; \
+		cd test && ./test-run.py --vardir /tmp/tnt \
+			--force $(TEST_RUN_EXTRA_PARAMS) \
+			app/ app-tap/ box/ box-py/ box-tap/ engine/ engine_long/ \
+			long_run-py/ luajit-tap/ replication-py/ small/ sql/ \
+			sql-tap/ swim/ unit/ vinyl/ wal_off/ xlog/ xlog-py/
 
 test_osx: deps_osx test_osx_no_deps
 
-- 
2.17.1



More information about the Tarantool-patches mailing list