From 5defb84f97b159db3ab3ea6b3dd47c1179ebd7aa Mon Sep 17 00:00:00 2001
From: Sergey Bronnikov <sergeyb@tarantool.org>
Date: Mon, 1 Jun 2020 09:17:23 +0000
Subject: [PATCH] gitlab-ci: enable static analysis with luacheck

Part of #4681
---
 .gitlab-ci.yml | 11 +++++++++++
 .travis.mk     | 23 ++++++++++++++++++++++-
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 962bbcbfff..ba88a26a9c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
 stages:
+  - static_analysis
   - test
   - perf
   - cleanup
@@ -124,6 +125,16 @@ variables:
   script:
     - ${GITLAB_MAKE} perf_cleanup
 
+# Static Analysis
+
+luacheck:
+  <<: *docker_test_definition
+  stage: static_analysis
+  tags:
+    - deploy_test
+  script:
+    - ${GITLAB_MAKE} test_debian_docker_luacheck
+
 # Tests
 
 release:
diff --git a/.travis.mk b/.travis.mk
index 748321f262..efc05cf05a 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -3,9 +3,11 @@
 #
 
 DOCKER_IMAGE?=packpack/packpack:debian-stretch
+DOCKER_IMAGE_TARANTOOL="registry.gitlab.com/tarantool/tarantool/testing/debian-stretch:latest"
 TEST_RUN_EXTRA_PARAMS?=
 MAX_FILES?=65534
 MAX_PROC?=2500
+OOS_SRC_PATH="/source"
 
 all: package
 
@@ -76,8 +78,10 @@ deps_buster_clang_8: deps_debian
 
 # Release
 
-build_debian:
+configure_debian:
 	cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
+
+build_debian: configure_debian
 	make -j
 
 test_debian_no_deps: build_debian
@@ -147,6 +151,23 @@ test_static_build: deps_debian_static
 test_static_docker_build:
 	docker build --no-cache --network=host --build-arg RUN_TESTS=ON -f Dockerfile.staticbuild .
 
+# ###################
+# Static Analysis
+# ###################
+
+test_debian_docker_luacheck:
+	docker run -w ${OOS_SRC_PATH} -v ${PWD}:${OOS_SRC_PATH} --privileged \
+		--cap-add=sys_nice --network=host -i ${DOCKER_IMAGE_TARANTOOL} \
+		make -f .travis.mk test_debian_luacheck
+
+test_debian_install_luacheck:
+	apt update -y
+	apt install -y lua5.1 luarocks
+	luarocks install luacheck
+
+test_debian_luacheck: test_debian_install_luacheck configure_debian
+	make luacheck
+
 #######
 # OSX #
 #######
-- 
GitLab