forked from apache/beam
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
88 lines (77 loc) · 3.35 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
* 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.
*/
// TODO(https://github.com/apache/beam/issues/20209): Move this definition into common.gradle.
plugins { id 'org.apache.beam.module' }
applyJavaNature(publish: false, exportJavadoc: false)
import org.apache.beam.gradle.BeamModulePlugin
project.evaluationDependsOn(":sdks:python")
project.evaluationDependsOn(":runners:portability:java")
def envDir = project.project(":sdks:python").envdir
def crossLanguageTestClasspath = project.project(":runners:portability:java").sourceSets.test.runtimeClasspath
def jobPort = BeamModulePlugin.getRandomPort()
def tmpDir = System.getenv("TMPDIR") ?: System.getenv("WORKSPACE") ?: "/tmp"
def pidFile = "${tmpDir}/local_job_service_main-${jobPort}.pid"
def setupTask = project.tasks.register("fnApiJobServerSetup", Exec) {
dependsOn ':sdks:python:installGcpTest'
executable 'sh'
args '-c', ". ${envDir}/bin/activate && python -m apache_beam.runners.portability.local_job_service_main --job_port ${jobPort} --pid_file ${pidFile} --background --stdout_file ${tmpDir}/beam-fnapi-job-server.log"
}
def cleanupTask = project.tasks.register("fnApiJobServerCleanup", Exec) {
executable 'sh'
args '-c', ". ${envDir}/bin/activate && python -m apache_beam.runners.portability.local_job_service_main --pid_file ${pidFile} --stop"
}
def gcpProject = project.findProperty('dataflowProject') ?: 'apache-beam-testing'
createCrossLanguageValidatesRunnerTask(
startJobServer: setupTask,
cleanupJobServer: cleanupTask,
numParallelTests: 1,
classpath: crossLanguageTestClasspath,
pythonPipelineOptions: [
"--runner=PortableRunner",
"--job_endpoint=localhost:${jobPort}",
"--environment_cache_millis=10000",
"--experiments=beam_fn_api",
],
javaPipelineOptions: [
"--runner=PortableRunner",
"--jobEndpoint=localhost:${jobPort}",
"--environmentCacheMillis=10000",
"--experiments=beam_fn_api",
],
goScriptOptions: [
"--runner portable",
"--tests \"./test/integration/xlang ./test/integration/io/xlang/...\"",
"--endpoint localhost:${jobPort}",
],
)
createTransformServiceTask(
startJobServer: setupTask,
cleanupJobServer: cleanupTask,
numParallelTests: 1,
collectMarker: 'uses_transform_service',
pythonPipelineOptions: [
"--runner=TestDirectRunner",
"--project=${gcpProject}",
],
pytestOptions: [
"--capture=no", // print stdout instantly
"--timeout=4500", // timeout of whole command execution
"--color=yes", // console color
"--log-cli-level=INFO" //log level info
]
)