From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id D5DC2469719 for ; Fri, 18 Sep 2020 15:28:49 +0300 (MSK) References: <8c4c50dbe712bb17cfe5a06fc6329d0e3ea4c8bd.1600239621.git.sergeyb@tarantool.org> <20200917071224.GA32661@hpalx> <20200917152541.n4mczy2uu6sl2edo@tkn_work_nb> From: Sergey Bronnikov Message-ID: <1131ff7e-a716-4b76-bd8b-9827571a97c4@tarantool.org> Date: Fri, 18 Sep 2020 15:28:49 +0300 MIME-Version: 1.0 In-Reply-To: <20200917152541.n4mczy2uu6sl2edo@tkn_work_nb> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [Tarantool-patches] [PATCH 4/4] ci: integrate Jepsen tests to GitLab CI List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Turenko , "Alexander V. Tikhonov" Cc: tarantool-patches@dev.tarantool.org Hello! Thanks for review! I made some changes according to your comments and pushed them to the branch. CI: https://gitlab.com/tarantool/tarantool/-/pipelines/191621859 On 17.09.2020 18:25, Alexander Turenko wrote: >>> +jepsen: >>> + <<: *docker_test_definition >>> + script: >>> + - ${GITLAB_MAKE} test_jepsen >>> + stage: long_tests >>> + when: manual >>> + tags: >>> + - mcs_jepsen_docker >>> + artifacts: >>> + paths: >>> + - jepsen-tests-prefix/src/jepsen-tests/store >>> + expire_in: 1 week >>> + >> Let's use more time for artifacts store, may be 6 months. > I agree. We sometimes return to bad results after some significant > delay. increased to 6 months: --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -222,7 +222,7 @@ jepsen:    artifacts:      paths:        - jepsen-tests-prefix/src/jepsen-tests/store -    expire_in: 1 week +    expire_in: 6 month  # ####  # Perf > >>> -deps_debian: >>> +deps_debian: $(BIN_DIR)/clojure $(BIN_DIR)/lein $(BIN_DIR)/terraform >>> apt-get update ${APT_EXTRA_FLAGS} && apt-get install -y -f \ >>> build-essential cmake coreutils sed \ >>> libreadline-dev libncurses5-dev libyaml-dev libssl-dev \ >> I don't think we need to add jepsen's new targets to the base one, let's >> move it to 'deps_debian_jepsen'. > I agree, it is a bit strange to install jepsen dependencies for all jobs > (when a separate jepsen goal exists at least). > Agree. Removed jepsen dependencies for deps_debian target. >>> +deps_debian_jepsen: >>> + apt-get update ${APT_EXTRA_FLAGS} && apt-get install -y -f \ >>> + openjdk-8-jre openjdk-8-jre-headless libjna-java gnuplot graphviz \ >>> + zip unzip openssh-client jq >>> + >>> +$(BIN_DIR)/clojure: deps_debian_jepsen >>> + curl $(CLOJURE_URL) | sudo bash >>> + >>> +$(BIN_DIR)/lein: deps_debian_jepsen >>> + curl $(LEIN_URL) > $@ >>> + chmod a+x $@ >>> + $@ version >>> + >>> +$(BIN_DIR)/terraform: deps_debian_jepsen >>> + curl -O $(TERRAFORM_URL) >>> + unzip -o $(TERRAFORM_NAME) terraform -d $(dir $@) >>> + rm -f $(TERRAFORM_NAME) >>> + >> Do we really need standalone targets that will not be used in separate? >> This file is in makefile style, but not makefile in real, it has >> standalone targets that provides some process meanings, like: >> - prepare deps >> - build >> - test > In my understanding it is Makefile anyway and it is usual for a Makefile > to use a file name as a goal (so the goal will be considered as made if > the file exists, if the goal is not marked as .PHONY). > >>> + >>> +# ################### >>> +# Jepsen testing >>> +# ################### >>> + >>> +test_jepsen: deps_debian >>> + cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON >>> + make jepsen-single >> Let's use deps_debian_jepsen here. Done. > I would do it this way, yep.