[Tarantool-patches] [PATCH 4/4] ci: integrate Jepsen tests to GitLab CI
Alexander V. Tikhonov
avtikhon at tarantool.org
Fri Sep 18 15:34:05 MSK 2020
Hi Sergey, thanks for the updates, patch LGTM.
On Fri, Sep 18, 2020 at 03:28:49PM +0300, Sergey Bronnikov wrote:
> 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.
More information about the Tarantool-patches
mailing list