| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| |
| apply plugin: "nebula.clojure" |
| |
| // Skip kudu-jepsen module tasks unless "Jepsen" property is passed. |
| if (!project.hasProperty("jepsen")) { |
| gradle.taskGraph.whenReady { |
| gradle.taskGraph.allTasks.each { |
| it.onlyIf { it.project != project } |
| } |
| } |
| } |
| |
| repositories { |
| maven { url "http://clojars.org/repo/" } |
| } |
| |
| dependencies { |
| compile project(path: ":kudu-client", configuration: "shadow") |
| compile project(path: ":kudu-client", configuration: "shadowTest") |
| compile libs.clojure |
| compile libs.clojureToolsCli |
| compile libs.jepsen |
| |
| optional libs.yetusAnnotations |
| } |
| |
| compileClojure { |
| aotCompile = true |
| } |
| // Jepsen tests require specific infrastructure and do not run as part of the regular tests. |
| clojureTest.enabled = false |
| |
| // Run the Jepsen tests. |
| task runJepsen(type: JavaExec) { |
| def masterNodes = propertyWithDefault("masterNodes", "m0") |
| def tserverNodes = propertyWithDefault("tserverNodes", "t0,t1,t2,t3,t4") |
| def sshKeyPath = propertyWithDefault("sshKeyPath", "") |
| def iterNum = propertyWithDefault("iterNum", "1") |
| classpath sourceSets.main.clojure.srcDirs, |
| sourceSets.test.clojure.srcDirs, |
| sourceSets.test.runtimeClasspath, |
| sourceSets.main.runtimeClasspath, |
| main = "clojure.main" |
| args = [ |
| "$projectDir/src/utils/kudu_test_runner.clj", |
| "--masters=${masterNodes}", |
| "--tservers=${tserverNodes}", |
| "--ssh-key-path=${sshKeyPath}", |
| "--iter-num=${iterNum}" |
| ] |
| } |
| |
| // We don't publish kudu-jepsen |
| uploadArchives.enabled = false |