From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id A57CB271F7 for ; Fri, 16 Aug 2019 05:55:11 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BGblJUunSZVp for ; Fri, 16 Aug 2019 05:55:11 -0400 (EDT) Received: from smtp16.mail.ru (smtp16.mail.ru [94.100.176.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 09517271F6 for ; Fri, 16 Aug 2019 05:55:10 -0400 (EDT) From: "Alexander V. Tikhonov" Subject: [tarantool-patches] [PATCH v1] gitlab-ci: add static build Date: Fri, 16 Aug 2019 12:55:06 +0300 Message-Id: <2b050fa422282168af422ef77110eb2de9506da6.1565949234.git.avtikhon@tarantool.org> Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: Alexander Turenko Cc: "Alexander V. Tikhonov" , tarantool-patches@freelists.org Added static build using Dockerfile on Centos 7 for release commit criteria only. Also cleaned up the Dockerfile from duplicating code and added the cleanup for cmake generating CMakeCache.txt files and CMakeFiles directories to avoid of cmake localy created setup failing inside the docker after the whole tarantool path was copied into it. Added testing into the staic build, running only when RUN_TESTS environment variable set to non empty value, used in gitlab-ci job to run the testing after the build. Closes #3668 --- Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-3668-static-build-full-ci Issue: https://github.com/tarantool/tarantool/issues/3668 .gitlab-ci.yml | 13 +++++++++++++ .gitlab.mk | 7 +++++++ Dockerfile.staticbuild | 19 ++++++++++++------- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a7b2b3804..f160c276b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -326,3 +326,16 @@ debian_10: DIST: 'buster' script: - ${GITLAB_MAKE} package + +static_build: + only: + refs: + - master + - /^.*-full-ci$/ + stage: test + tags: + - deploy + variables: + RUN_TESTS: 'ON' + script: + - ${GITLAB_MAKE} static_build diff --git a/.gitlab.mk b/.gitlab.mk index 7199adf94..cb66df4c2 100644 --- a/.gitlab.mk +++ b/.gitlab.mk @@ -105,3 +105,10 @@ vms_shutdown: package: git_submodule_update git clone https://github.com/packpack/packpack.git packpack PACKPACK_EXTRA_DOCKER_RUN_PARAMS='--network=host' ./packpack/packpack + +# ############ +# Static build +# ############ + +static_build: + docker build --network=host -f Dockerfile.staticbuild . diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild index 6a784990b..195274d54 100644 --- a/Dockerfile.staticbuild +++ b/Dockerfile.staticbuild @@ -38,8 +38,9 @@ RUN yum -y install ncurses-static readline-static zlib-static pcre-static glibc- RUN yum -y install python-devel python-pip +WORKDIR / + RUN set -x && \ - cd / && \ curl -O -L https://www.openssl.org/source/openssl-1.1.0h.tar.gz && \ tar -xvf openssl-1.1.0h.tar.gz && \ cd openssl-1.1.0h && \ @@ -47,7 +48,6 @@ RUN set -x && \ make && make install RUN set -x && \ - cd / && \ git clone https://github.com/curl/curl.git && \ cd curl && \ git checkout curl-7_59_0 && \ @@ -56,7 +56,6 @@ RUN set -x && \ make -j && make install RUN set -x && \ - cd / && \ wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && \ tar -xvf icu4c-62_1-src.tgz && \ cd icu/source && \ @@ -64,7 +63,6 @@ RUN set -x && \ make && make install RUN set -x && \ - cd / && \ LD_LIBRARY_PATH=/usr/local/lib64 curl -O -L http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \ tar -xvf libunwind-1.3-rc1.tar.gz && \ cd libunwind-1.3-rc1 && \ @@ -72,11 +70,12 @@ RUN set -x && \ make && make install COPY . /tarantool +WORKDIR /tarantool RUN set -x && \ - cd tarantool && \ - git submodule init && \ - git submodule update + git submodule update --init && \ + find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \ + find . -name 'CMakeCache.txt' -type f -delete RUN pip install -r /tarantool/test-run/requirements.txt @@ -91,4 +90,10 @@ RUN set -x \ RUN cd /tarantool && make install +ARG RUN_TESTS +RUN [ -n ${RUN_TESTS} ] && \ + set -x && \ + cd test && \ + /usr/bin/python test-run.py --force + ENTRYPOINT /bin/bash -- 2.17.1