blob: 03060bd61dd0dedd6c07213ed9896a5155d03deb [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.
*/
description = "Apache Beam :: Playground :: Backend"
task("format") {
group = "build"
description = "Format backend go code"
doLast {
exec {
executable("gofmt")
args("-w", ".")
}
}
}
task("tidy") {
group = "build"
description = "Run go mod tidy"
doLast {
exec {
executable("go")
args("mod", "tidy")
}
}
}
val test by tasks.registering {
group = "verification"
description = "Test the backend"
doLast {
exec {
executable("go")
args("test", "./...")
}
}
}
val testWithoutCache by tasks.registering {
group = "verification"
description = "Test the backend"
doFirst {
exec {
executable("go")
args("clean", "-testcache")
}
}
doLast {
exec {
executable("go")
args("test", "./...")
}
}
}
task("removeUnusedSnippet") {
doLast {
exec {
executable("go")
args("run", "cmd/remove_unused_snippets/remove_unused_snippets.go", "cleanup",
"-day_diff", System.getProperty("dayDiff"), "-project_id", System.getProperty("projectId"),
"-namespace", System.getProperty("namespace"))
}
}
}
task("removeSnippet") {
doLast {
exec {
executable("go")
args("run", "cmd/remove_unused_snippets/remove_unused_snippets.go", "remove",
"-snippet_id", System.getProperty("snippetId"), "-project_id", System.getProperty("projectId"),
"-namespace", System.getProperty("namespace"))
}
}
}
task("benchmarkPrecompiledObjects") {
group = "verification"
description = "Run benchmarks for precompiled objects"
doLast {
exec {
executable("go")
args("test", "-bench", ".", "-benchmem", "./internal/cloud_bucket/...")
}
}
}
task("benchmarkCodeProcessing") {
group = "verification"
description = "Run benchmarks for code processing"
doLast {
exec {
executable("go")
args("test", "-run=^$", "-bench", ".", "-benchmem", "./internal/code_processing/...")
}
}
}
task("benchmark") {
dependsOn(":playground:backend:benchmarkCodeProcessing")
}
task("checkFormat") {
doLast {
val stdout = java.io.ByteArrayOutputStream()
exec {
executable("gofmt")
args("-l", "-e", "-d", ".")
standardOutput = stdout
}
if (stdout.size() > 0) {
println(stdout.toString())
throw GradleException("gofmt check indicates that there are unformatted files")
}
}
}
task("installLinter") {
doLast {
exec {
executable("sh")
args("env_setup.sh")
}
}
}
task("runLint") {
dependsOn(":playground:backend:installLinter")
doLast {
exec {
executable("golangci-lint")
args("run", "cmd/server/...")
}
}
}
task("precommit") {
dependsOn(":playground:backend:runLint")
dependsOn(":playground:backend:checkFormat")
dependsOn(":playground:backend:tidy")
dependsOn(":playground:backend:test")
dependsOn(":playground:backend:benchmark")
}