blob: 1f28959384dd4bfc4f15183d86c41a8d54ba04b2 [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.
*/
plugins { id 'org.apache.beam.module' }
applyPythonNature()
enablePythonPerformanceTest()
dependencies {
distTarBall project(path: ":sdks:python", configuration: "distTarBall")
}
def runScriptsDir = "${rootDir}/sdks/python/scripts"
// Basic test options for ITs running on Jenkins.
def basicTestOpts = [
"--nocapture", // print stdout instantly
"--processes=8", // run tests in parallel
"--process-timeout=4500", // timeout of whole command execution
]
task preCommitIT {
dependsOn 'installGcpTest'
dependsOn ':sdks:python:sdist'
dependsOn ":runners:google-cloud-dataflow-java:worker:shadowJar"
def dataflowWorkerJar = project(":runners:google-cloud-dataflow-java:worker").shadowJar.archivePath
doLast {
// Basic integration tests to run in PreCommit
def precommitTests = [
"apache_beam.examples.wordcount_it_test:WordCountIT.test_wordcount_it",
"apache_beam.examples.streaming_wordcount_it_test:StreamingWordCountIT.test_streaming_wordcount_it",
]
def testOpts = [
"--tests=${precommitTests.join(',')}",
"--nocapture", // Print stdout instantly
"--processes=2", // Number of tests running in parallel
"--process-timeout=1800", // Timeout of whole command execution
]
def cmdArgs = mapToArgString([
"test_opts": testOpts,
"sdk_location": files(configurations.distTarBall.files).singleFile,
"worker_jar": dataflowWorkerJar,
"suite": "preCommitIT-df"
])
exec {
executable 'sh'
args '-c', ". ${envdir}/bin/activate && ${runScriptsDir}/run_integration_test.sh $cmdArgs"
}
}
}
// Run PostCommit integration tests on default runner (TestDataflowRunner)
task postCommitIT {
dependsOn 'installGcpTest'
dependsOn ':sdks:python:sdist'
dependsOn ":runners:google-cloud-dataflow-java:worker:shadowJar"
def dataflowWorkerJar = project(":runners:google-cloud-dataflow-java:worker").shadowJar.archivePath
doLast {
def testOpts = basicTestOpts + ["--attr=IT"]
def cmdArgs = mapToArgString([
"test_opts": testOpts,
"worker_jar": dataflowWorkerJar,
"sdk_location": files(configurations.distTarBall.files).singleFile,
"suite": "postCommitIT-df"
])
exec {
executable 'sh'
args '-c', ". ${envdir}/bin/activate && ${runScriptsDir}/run_integration_test.sh $cmdArgs"
}
}
}
task validatesRunnerBatchTests {
dependsOn 'installGcpTest'
dependsOn ':sdks:python:sdist'
dependsOn ":runners:google-cloud-dataflow-java:worker:shadowJar"
def dataflowWorkerJar = project(":runners:google-cloud-dataflow-java:worker").shadowJar.archivePath
doLast {
def testOpts = basicTestOpts + ["--attr=ValidatesRunner"]
def cmdArgs = mapToArgString([
"test_opts": testOpts,
"worker_jar": dataflowWorkerJar,
"sdk_location": files(configurations.distTarBall.files).singleFile,
"suite": "validatesRunnerBatchTests-df"
])
exec {
executable 'sh'
args '-c', ". ${envdir}/bin/activate && ${runScriptsDir}/run_integration_test.sh $cmdArgs"
}
}
}
task validatesRunnerStreamingTests {
dependsOn 'installGcpTest'
dependsOn ':sdks:python:sdist'
dependsOn ":runners:google-cloud-dataflow-java:worker:shadowJar"
def dataflowWorkerJar = project(":runners:google-cloud-dataflow-java:worker").shadowJar.archivePath
doLast {
// TODO(BEAM-3544,BEAM-5025): Disable tests with 'sickbay-streaming' tag.
def testOpts = basicTestOpts + ["--attr=ValidatesRunner,!sickbay-streaming"]
def argMap = ["test_opts": testOpts,
"streaming": "true",
"worker_jar": dataflowWorkerJar,
"sdk_location": files(configurations.distTarBall.files).singleFile,
"suite": "validatesRunnerStreamingTests-df"]
def cmdArgs = mapToArgString(argMap)
exec {
executable 'sh'
args '-c', ". ${envdir}/bin/activate && ${runScriptsDir}/run_integration_test.sh $cmdArgs"
}
}
}
task dataflowChicagoTaxiExample {
dependsOn 'installGcpTest'
dependsOn ':sdks:python:sdist'
def gcsRoot = findProperty('gcsRoot')
def runner = findProperty('runner')
def cliArgs = "${gcsRoot} ${runner} ${files(configurations.distTarBall.files).singleFile}"
doLast {
exec {
workingDir "$rootProject.projectDir/sdks/python/apache_beam/testing/benchmarks/chicago_taxi/"
executable 'sh'
args '-c', ". ${envdir}/bin/activate && pip install -r requirements.txt"
}
exec {
workingDir "$rootProject.projectDir/sdks/python/apache_beam/testing/benchmarks/chicago_taxi/"
executable 'sh'
args '-c', ". ${envdir}/bin/activate && ./run_chicago.sh ${cliArgs}"
}
}
}