diff --git a/.github/workflows/jepsen.yml b/.github/workflows/jepsen.yml index 3057502fa55..16433e2baed 100644 --- a/.github/workflows/jepsen.yml +++ b/.github/workflows/jepsen.yml @@ -10,37 +10,40 @@ on: # yamllint disable-line rule:truthy workflow_dispatch: workflow_call: jobs: - #KeeperJepsenRelease: - # runs-on: [self-hosted, style-checker] - # steps: - # - name: Set envs - # run: | - # cat >> "$GITHUB_ENV" << 'EOF' - # TEMP_PATH=${{runner.temp}}/keeper_jepsen - # REPO_COPY=${{runner.temp}}/keeper_jepsen/ClickHouse - # EOF - # - name: Clear repository - # run: | - # sudo rm -fr "$GITHUB_WORKSPACE" && mkdir "$GITHUB_WORKSPACE" - # - name: Check out repository code - # uses: actions/checkout@v2 - # with: - # fetch-depth: 0 - # - name: Jepsen Test - # run: | - # sudo rm -fr "$TEMP_PATH" - # mkdir -p "$TEMP_PATH" - # cp -r "$GITHUB_WORKSPACE" "$TEMP_PATH" - # cd "$REPO_COPY/tests/ci" - # python3 jepsen_check.py keeper - # - name: Cleanup - # if: always() - # run: | - # docker ps --quiet | xargs --no-run-if-empty docker kill ||: - # docker ps --all --quiet | xargs --no-run-if-empty docker rm -f ||: - # sudo rm -fr "$TEMP_PATH" + KeeperJepsenRelease: + runs-on: [self-hosted, style-checker] + steps: + - name: Set envs + run: | + cat >> "$GITHUB_ENV" << 'EOF' + TEMP_PATH=${{runner.temp}}/keeper_jepsen + REPO_COPY=${{runner.temp}}/keeper_jepsen/ClickHouse + EOF + - name: Clear repository + run: | + sudo rm -fr "$GITHUB_WORKSPACE" && mkdir "$GITHUB_WORKSPACE" + - name: Check out repository code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Jepsen Test + run: | + sudo rm -fr "$TEMP_PATH" + mkdir -p "$TEMP_PATH" + cp -r "$GITHUB_WORKSPACE" "$TEMP_PATH" + docker build -f "$REPO_COPY/docker/test/keeper-jepsen/Dockerfile" -t clickhouse/keeper-jepsen-test "$REPO_COPY/docker/test/keeper-jepsen" + cd "$REPO_COPY/tests/ci" + python3 jepsen_check.py keeper + - name: Cleanup + if: always() + run: | + docker ps --quiet | xargs --no-run-if-empty docker kill ||: + docker ps --all --quiet | xargs --no-run-if-empty docker rm -f ||: + sudo rm -fr "$TEMP_PATH" ServerJepsenRelease: runs-on: [self-hosted, style-checker] + if: ${{ always() }} + needs: [KeeperJepsenRelease] steps: - name: Set envs run: | diff --git a/docker/test/server-jepsen/Dockerfile b/docker/test/server-jepsen/Dockerfile index 974da67e853..958dbfa066a 100644 --- a/docker/test/server-jepsen/Dockerfile +++ b/docker/test/server-jepsen/Dockerfile @@ -12,7 +12,7 @@ ENV SHA_TO_TEST="" ENV NODES_USERNAME="root" ENV NODES_PASSWORD="" -ENV TESTS_TO_RUN="1" +ENV TESTS_TO_RUN="8" ENV TIME_LIMIT="30" ENV KEEPER_NODE="" diff --git a/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/client.clj b/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/client.clj index 9335a005149..e051d361c73 100644 --- a/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/client.clj +++ b/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/client.clj @@ -22,12 +22,12 @@ (util/timeout 30000 (throw (RuntimeException. (str "Connection to " node " timed out"))) - ;(util/retry 0.1 + (util/retry 0.1 (let [spec (db-spec node) connection (j/get-connection spec) added-connection (j/add-connection spec connection)] (assert added-connection) - added-connection))) + added-connection)))) (defn close-connection "Close connection" diff --git a/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/utils.clj b/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/utils.clj index a61c825681a..993f27f922f 100644 --- a/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/utils.clj +++ b/tests/jepsen.clickhouse/src/jepsen/clickhouse/server/utils.clj @@ -11,7 +11,7 @@ (let [c (chc/open-connection node)] (jdbc/query c "SELECT 1") (chc/close-connection c)) - (catch Exception e (do (info e) false)))) + (catch Exception e false))) (defn start-clickhouse! [node test]