diff options
Diffstat (limited to 'tools/run_tests/python_utils/upload_test_results.py')
-rw-r--r-- | tools/run_tests/python_utils/upload_test_results.py | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/tools/run_tests/python_utils/upload_test_results.py b/tools/run_tests/python_utils/upload_test_results.py index d076d1e5a2..24c3ec94ae 100644 --- a/tools/run_tests/python_utils/upload_test_results.py +++ b/tools/run_tests/python_utils/upload_test_results.py @@ -1,32 +1,17 @@ #!/usr/bin/env python -# Copyright 2017, Google Inc. -# All rights reserved. +# Copyright 2017 gRPC authors. # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: +# Licensed 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 # -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. +# http://www.apache.org/licenses/LICENSE-2.0 # -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 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. """Helper to upload Jenkins test results to BQ""" @@ -45,6 +30,9 @@ import big_query_utils _DATASET_ID = 'jenkins_test_results' _DESCRIPTION = 'Test results from master job run on Jenkins' +# 90 days in milliseconds +_EXPIRATION_MS = 90 * 24 * 60 * 60 * 1000 +_PARTITION_TYPE = 'DAY' _PROJECT_ID = 'grpc-testing' _RESULTS_SCHEMA = [ ('job_name', 'STRING', 'Name of Jenkins job'), @@ -65,10 +53,12 @@ _RESULTS_SCHEMA = [ def _get_build_metadata(test_results): - """Add Jenkins build metadata to test_results based on environment variables set by Jenkins.""" - build_id = os.getenv('BUILD_ID') - build_url = os.getenv('BUILD_URL') - job_name = os.getenv('JOB_BASE_NAME') + """Add Jenkins/Kokoro build metadata to test_results based on environment + variables set by Jenkins/Kokoro. + """ + build_id = os.getenv('BUILD_ID') or os.getenv('KOKORO_BUILD_NUMBER') + build_url = os.getenv('BUILD_URL') or os.getenv('KOKORO_BUILD_URL') + job_name = os.getenv('JOB_BASE_NAME') or os.getenv('KOKORO_JOB_NAME') if build_id: test_results['build_id'] = build_id @@ -77,6 +67,7 @@ def _get_build_metadata(test_results): if job_name: test_results['job_name'] = job_name + def upload_results_to_bq(resultset, bq_table, args, platform): """Upload test results to a BQ table. @@ -87,7 +78,8 @@ def upload_results_to_bq(resultset, bq_table, args, platform): platform: string name of platform tests were run on """ bq = big_query_utils.create_big_query() - big_query_utils.create_table(bq, _PROJECT_ID, _DATASET_ID, bq_table, _RESULTS_SCHEMA, _DESCRIPTION) + big_query_utils.create_partitioned_table(bq, _PROJECT_ID, _DATASET_ID, bq_table, _RESULTS_SCHEMA, _DESCRIPTION, + partition_type=_PARTITION_TYPE, expiration_ms= _EXPIRATION_MS) for shortname, results in six.iteritems(resultset): for result in results: |