| /* |
| * 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() |
| |
| // Required to setup a Python 3 virtualenv. |
| pythonVersion = '3.5' |
| |
| def runScriptsDir = "${rootDir}/sdks/python/scripts" |
| |
| task postCommitIT { |
| dependsOn 'installGcpTest' |
| |
| // Run IT tests with TestDirectRunner in batch in Python 3. |
| doLast { |
| def batchTests = [ |
| "apache_beam.examples.wordcount_it_test:WordCountIT.test_wordcount_it", |
| "apache_beam.io.gcp.pubsub_integration_test:PubSubIntegrationTest", |
| "apache_beam.io.gcp.big_query_query_to_table_it_test:BigQueryQueryToTableIT", |
| "apache_beam.io.gcp.bigquery_io_read_it_test", |
| "apache_beam.io.gcp.bigquery_read_it_test", |
| "apache_beam.io.gcp.bigquery_write_it_test", |
| "apache_beam.io.gcp.datastore.v1new.datastore_write_it_test", |
| ] |
| def testOpts = [ |
| "--tests=${batchTests.join(',')}", |
| "--nocapture", // Print stdout instantly |
| "--processes=8", // run tests in parallel |
| "--process-timeout=4500", // timeout of whole command execution |
| ] |
| def argMap = ["runner": "TestDirectRunner", |
| "test_opts": testOpts, |
| "suite": "postCommitIT-direct-py35"] |
| def batchCmdArgs = mapToArgString(argMap) |
| exec { |
| executable 'sh' |
| args '-c', ". ${envdir}/bin/activate && ${runScriptsDir}/run_integration_test.sh $batchCmdArgs" |
| } |
| } |
| } |
| |
| task mongodbioIT { |
| dependsOn 'setupVirtualenv' |
| |
| Random r = new Random() |
| def port = r.nextInt(1000) + 27017 |
| def containerName = "mongoioit" + port |
| |
| def options = [ |
| "--mongo_uri=mongodb://localhost:" + port |
| ] |
| |
| // Pull the latest mongodb docker image and run |
| doFirst { |
| exec { |
| executable 'sh' |
| args '-c', "docker pull mongo && docker run --name ${containerName} -p ${port}:27017 -d mongo:latest" |
| } |
| } |
| |
| doLast { |
| exec { |
| executable 'sh' |
| args '-c', ". ${envdir}/bin/activate && pip install -e ${rootDir}/sdks/python/[test] && python -m apache_beam.io.mongodbio_it_test ${options.join(' ')}" |
| } |
| exec { |
| executable 'sh' |
| args '-c', "docker stop ${containerName} && docker rm ${containerName}" |
| } |
| } |
| } |