diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 712e248fec408c44992d74e3ed8bef5ab49b8d8b..16528c1dce4aafe1587ab9a56e7c52726b7aab7b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - static_analysis - test + - long_tests - perf - cleanup @@ -213,6 +214,19 @@ freebsd_12_release: - ${GITLAB_MAKE} vms_start - ${GITLAB_MAKE} vms_test_freebsd +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: 6 month + # #### # Perf # #### diff --git a/.travis.mk b/.travis.mk index 58d0c159696d580f00b93a0d44c9793444e9fce6..d8f97ef5c831c83ec81f26f559bfdfc7a6987a94 100644 --- a/.travis.mk +++ b/.travis.mk @@ -8,6 +8,12 @@ TEST_RUN_EXTRA_PARAMS?= MAX_FILES?=65534 MAX_PROC?=2500 OOS_SRC_PATH="/source" +BIN_DIR=/usr/local/bin + +CLOJURE_URL="https://download.clojure.org/install/linux-install-1.10.1.561.sh" +LEIN_URL="https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein" +TERRAFORM_NAME="terraform_0.13.1_linux_amd64.zip" +TERRAFORM_URL="https://releases.hashicorp.com/terraform/0.13.1/"$(TERRAFORM_NAME) all: package @@ -76,6 +82,25 @@ deps_buster_clang_8: deps_debian apt-get update apt-get install -y clang-8 llvm-8-dev +deps_debian_jepsen: $(BIN_DIR)/clojure $(BIN_DIR)/lein $(BIN_DIR)/terraform + 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: + curl $(CLOJURE_URL) | sudo bash + +$(BIN_DIR)/lein: + curl $(LEIN_URL) > $@ + chmod a+x $@ + +$(BIN_DIR)/terraform: + apt-get update ${APT_EXTRA_FLAGS} && apt-get install -y -f \ + unzip + curl -O $(TERRAFORM_URL) + unzip -o $(TERRAFORM_NAME) terraform -d $(dir $@) + rm -f $(TERRAFORM_NAME) + # Release configure_debian: @@ -262,3 +287,11 @@ test_freebsd_no_deps: build_freebsd cd test && python2.7 test-run.py --force $(TEST_RUN_EXTRA_PARAMS) test_freebsd: deps_freebsd test_freebsd_no_deps + +# ################### +# Jepsen testing +# ################### + +test_jepsen: deps_debian_jepsen + cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON + make jepsen-single