blob: c23082a2fc84ca1e7505349c3e0355c5d9bea71d [file] [log] [blame]
// 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"
// Clojure doesn't support Java 12+
// https://clojure.org/releases/downloads#_java_compatibility
if(JavaVersion.current().isJava12Compatible()) {
// Disable all tasks for the `kudu-jepsen` sub-project.
gradle.taskGraph.whenReady {
gradle.taskGraph.allTasks.each {
it.onlyIf { it.project != project }
}
}
}
repositories {
maven { url "https://clojars.org/repo/" }
}
dependencies {
compile project(path: ":kudu-client", configuration: "shadow")
compile project(path: ":kudu-test-utils", configuration: "shadow")
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
install.enabled = false
// SpotBugs doesn't work on Clojure.
spotbugsMain.enabled = false
spotbugsTest.enabled = false