diff options
Diffstat (limited to 'tools/run_tests/artifacts')
-rw-r--r-- | tools/run_tests/artifacts/artifact_targets.py | 24 | ||||
-rwxr-xr-x | tools/run_tests/artifacts/build_artifact_csharp_android.sh | 23 | ||||
-rwxr-xr-x | tools/run_tests/artifacts/build_artifact_python.sh | 1 | ||||
-rwxr-xr-x | tools/run_tests/artifacts/build_package_php.sh | 7 | ||||
-rwxr-xr-x | tools/run_tests/artifacts/build_package_python.sh | 5 | ||||
-rwxr-xr-x | tools/run_tests/artifacts/build_package_ruby.sh | 19 | ||||
-rw-r--r-- | tools/run_tests/artifacts/distribtest_targets.py | 47 |
7 files changed, 98 insertions, 28 deletions
diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py index efc4ca0d8a..e4d9e6bdfe 100644 --- a/tools/run_tests/artifacts/artifact_targets.py +++ b/tools/run_tests/artifacts/artifact_targets.py @@ -31,7 +31,8 @@ def create_docker_jobspec(name, timeout_retries=0, timeout_seconds=30 * 60, docker_base_image=None, - extra_docker_args=None): + extra_docker_args=None, + verbose_success=False): """Creates jobspec for a task running under docker.""" environ = environ.copy() environ['RUN_COMMAND'] = shell_command @@ -57,7 +58,8 @@ def create_docker_jobspec(name, shortname='build_artifact.%s' % (name), timeout_seconds=timeout_seconds, flake_retries=flake_retries, - timeout_retries=timeout_retries) + timeout_retries=timeout_retries, + verbose_success=verbose_success) return jobspec @@ -69,7 +71,8 @@ def create_jobspec(name, timeout_retries=0, timeout_seconds=30 * 60, use_workspace=False, - cpu_cost=1.0): + cpu_cost=1.0, + verbose_success=False): """Creates jobspec.""" environ = environ.copy() if use_workspace: @@ -88,7 +91,8 @@ def create_jobspec(name, flake_retries=flake_retries, timeout_retries=timeout_retries, shell=shell, - cpu_cost=cpu_cost) + cpu_cost=cpu_cost, + verbose_success=verbose_success) return jobspec @@ -177,7 +181,7 @@ class PythonArtifact: self.name, ['tools/run_tests/artifacts/build_artifact_python.sh'], environ=environ, - timeout_seconds=60 * 60, + timeout_seconds=60 * 60 * 2, use_workspace=True) def __str__(self): @@ -218,7 +222,13 @@ class CSharpExtArtifact: return [] def build_jobspec(self): - if self.platform == 'windows': + if self.arch == 'android': + return create_docker_jobspec( + self.name, + 'tools/dockerfile/grpc_artifact_android_ndk', + 'tools/run_tests/artifacts/build_artifact_csharp_android.sh', + environ={}) + elif self.platform == 'windows': cmake_arch_option = 'Win32' if self.arch == 'x86' else self.arch return create_jobspec( self.name, [ @@ -317,6 +327,7 @@ class ProtocArtifact: self.name, ['tools/run_tests/artifacts/build_artifact_protoc.sh'], environ=environ, + timeout_seconds=60 * 60, use_workspace=True) else: generator = 'Visual Studio 14 2015 Win64' if self.arch == 'x64' else 'Visual Studio 14 2015' @@ -337,6 +348,7 @@ def targets(): for Cls in (CSharpExtArtifact, ProtocArtifact) for platform in ('linux', 'macos', 'windows') for arch in ('x86', 'x64') ] + [ + CSharpExtArtifact('linux', 'android'), PythonArtifact('linux', 'x86', 'cp27-cp27m'), PythonArtifact('linux', 'x86', 'cp27-cp27mu'), PythonArtifact('linux', 'x86', 'cp34-cp34m'), diff --git a/tools/run_tests/artifacts/build_artifact_csharp_android.sh b/tools/run_tests/artifacts/build_artifact_csharp_android.sh new file mode 100755 index 0000000000..ba598e76a4 --- /dev/null +++ b/tools/run_tests/artifacts/build_artifact_csharp_android.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# Copyright 2016 gRPC authors. +# +# 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 +# +# 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. + +set -ex + +cd "$(dirname "$0")/../../.." + +src/csharp/experimental/build_native_ext_for_android.sh + +mkdir -p "${ARTIFACTS_OUT}" +cp cmake/build/libgrpc_csharp_ext.so "${ARTIFACTS_OUT}" diff --git a/tools/run_tests/artifacts/build_artifact_python.sh b/tools/run_tests/artifacts/build_artifact_python.sh index 9ea0f05660..cd794a1391 100755 --- a/tools/run_tests/artifacts/build_artifact_python.sh +++ b/tools/run_tests/artifacts/build_artifact_python.sh @@ -17,7 +17,6 @@ set -ex cd "$(dirname "$0")/../../.." -export GRPC_PYTHON_USE_CUSTOM_BDIST=0 export GRPC_PYTHON_BUILD_WITH_CYTHON=1 export PYTHON=${PYTHON:-python} export PIP=${PIP:-pip} diff --git a/tools/run_tests/artifacts/build_package_php.sh b/tools/run_tests/artifacts/build_package_php.sh index 85e4dda40a..9a8f25a6f8 100755 --- a/tools/run_tests/artifacts/build_package_php.sh +++ b/tools/run_tests/artifacts/build_package_php.sh @@ -17,5 +17,10 @@ set -ex cd "$(dirname "$0")/../../.." +# All the PHP packages have been built in the artifact phase already +# and we only collect them here to deliver them to the distribtest phase. mkdir -p artifacts/ -cp -r "$EXTERNAL_GIT_ROOT"/platform={windows,linux,macos}/artifacts/php_*/* artifacts/ || true +# Jenkins flow (deprecated) +cp -r "${EXTERNAL_GIT_ROOT}"/platform={windows,linux,macos}/artifacts/php_*/* artifacts/ || true +# Kokoro flow +cp -r "${EXTERNAL_GIT_ROOT}"/input_artifacts/php_*/* artifacts/ || true diff --git a/tools/run_tests/artifacts/build_package_python.sh b/tools/run_tests/artifacts/build_package_python.sh index d596e35000..15627881e8 100755 --- a/tools/run_tests/artifacts/build_package_python.sh +++ b/tools/run_tests/artifacts/build_package_python.sh @@ -21,7 +21,10 @@ mkdir -p artifacts/ # All the python packages have been built in the artifact phase already # and we only collect them here to deliver them to the distribtest phase. -cp -r "$EXTERNAL_GIT_ROOT"/platform={windows,linux,macos}/artifacts/python_*/* artifacts/ || true +# Jenkins flow (deprecated) +cp -r "${EXTERNAL_GIT_ROOT}"/platform={windows,linux,macos}/artifacts/python_*/* artifacts/ || true +# Kokoro flow +cp -r "${EXTERNAL_GIT_ROOT}"/input_artifacts/python_*/* artifacts/ || true # TODO: all the artifact builder configurations generate a grpcio-VERSION.tar.gz # source distribution package, and only one of them will end up diff --git a/tools/run_tests/artifacts/build_package_ruby.sh b/tools/run_tests/artifacts/build_package_ruby.sh index 0283c43843..4f74f08276 100755 --- a/tools/run_tests/artifacts/build_package_ruby.sh +++ b/tools/run_tests/artifacts/build_package_ruby.sh @@ -23,7 +23,10 @@ mkdir -p artifacts/ # All the ruby packages have been built in the artifact phase already # and we only collect them here to deliver them to the distribtest phase. -cp -r "$EXTERNAL_GIT_ROOT"/platform={windows,linux,macos}/artifacts/ruby_native_gem_*/* artifacts/ || true +# Jenkins flow (deprecated) +cp -r "${EXTERNAL_GIT_ROOT}"/platform={windows,linux,macos}/artifacts/ruby_native_gem_*/* artifacts/ || true +# Kokoro flow +cp -r "${EXTERNAL_GIT_ROOT}"/input_artifacts/ruby_native_gem_*/* artifacts/ || true well_known_protos=( any api compiler/plugin descriptor duration empty field_mask source_context struct timestamp type wrappers ) @@ -41,12 +44,20 @@ for arch in {x86,x64}; do ;; esac for plat in {windows,linux,macos}; do - input_dir="$EXTERNAL_GIT_ROOT/platform=${plat}/artifacts/protoc_${plat}_${arch}" + if [ "${KOKORO_JOB_NAME}" != "" ] + then + input_dir="${EXTERNAL_GIT_ROOT}/input_artifacts/protoc_${plat}_${arch}" + else + input_dir="${EXTERNAL_GIT_ROOT}/platform=${plat}/artifacts/protoc_${plat}_${arch}" + fi output_dir="$base/src/ruby/tools/bin/${ruby_arch}-${plat}" mkdir -p "$output_dir"/google/protobuf mkdir -p "$output_dir"/google/protobuf/compiler # needed for plugin.proto - cp "$input_dir"/protoc* "$output_dir"/ - cp "$input_dir"/grpc_ruby_plugin* "$output_dir"/ + cp "$input_dir"/protoc* "$input_dir"/grpc_ruby_plugin* "$output_dir/" + if [[ "$plat" != "windows" ]] + then + chmod +x "$output_dir/protoc" "$output_dir/grpc_ruby_plugin" + fi for proto in "${well_known_protos[@]}"; do cp "$base/third_party/protobuf/src/google/protobuf/$proto.proto" "$output_dir/google/protobuf/$proto.proto" done diff --git a/tools/run_tests/artifacts/distribtest_targets.py b/tools/run_tests/artifacts/distribtest_targets.py index fdf094cd01..80adc20184 100644 --- a/tools/run_tests/artifacts/distribtest_targets.py +++ b/tools/run_tests/artifacts/distribtest_targets.py @@ -146,8 +146,12 @@ class CSharpDistribTest(object): class PythonDistribTest(object): """Tests Python package""" - def __init__(self, platform, arch, docker_suffix): - self.name = 'python_%s_%s_%s' % (platform, arch, docker_suffix) + def __init__(self, platform, arch, docker_suffix, source=False): + self.source = source + if source: + self.name = 'python_dev_%s_%s_%s' % (platform, arch, docker_suffix) + else: + self.name = 'python_%s_%s_%s' % (platform, arch, docker_suffix) self.platform = platform self.arch = arch self.docker_suffix = docker_suffix @@ -160,12 +164,20 @@ class PythonDistribTest(object): if not self.platform == 'linux': raise Exception("Not supported yet.") - return create_docker_jobspec( - self.name, - 'tools/dockerfile/distribtest/python_%s_%s' % (self.docker_suffix, - self.arch), - 'test/distrib/python/run_distrib_test.sh', - copy_rel_path='test/distrib') + if self.source: + return create_docker_jobspec( + self.name, + 'tools/dockerfile/distribtest/python_dev_%s_%s' % + (self.docker_suffix, self.arch), + 'test/distrib/python/run_source_distrib_test.sh', + copy_rel_path='test/distrib') + else: + return create_docker_jobspec( + self.name, + 'tools/dockerfile/distribtest/python_%s_%s' % + (self.docker_suffix, self.arch), + 'test/distrib/python/run_binary_distrib_test.sh', + copy_rel_path='test/distrib') def __str__(self): return self.name @@ -232,7 +244,7 @@ class PHPDistribTest(object): copy_rel_path='test/distrib') elif self.platform == 'macos': return create_jobspec( - self.name, ['test/distrib/php/run_distrib_test.sh'], + self.name, ['test/distrib/php/run_distrib_test_macos.sh'], environ={'EXTERNAL_GIT_ROOT': '../../../..'}, use_workspace=True) else: @@ -287,14 +299,15 @@ def targets(): return [ CppDistribTest('linux', 'x64', 'jessie', 'routeguide'), CppDistribTest('linux', 'x64', 'jessie', 'cmake'), + CppDistribTest('linux', 'x64', 'jessie', 'cmake_as_externalproject'), + CppDistribTest('linux', 'x64', 'jessie', 'cmake_as_submodule'), CppDistribTest('windows', 'x86', testcase='cmake'), + CppDistribTest('windows', 'x86', testcase='cmake_as_externalproject'), CSharpDistribTest('linux', 'x64', 'wheezy'), CSharpDistribTest('linux', 'x64', 'jessie'), CSharpDistribTest('linux', 'x86', 'jessie'), CSharpDistribTest('linux', 'x64', 'centos7'), CSharpDistribTest('linux', 'x64', 'ubuntu1404'), - CSharpDistribTest('linux', 'x64', 'ubuntu1504'), - CSharpDistribTest('linux', 'x64', 'ubuntu1510'), CSharpDistribTest('linux', 'x64', 'ubuntu1604'), CSharpDistribTest('linux', 'x64', 'ubuntu1404', use_dotnet_cli=True), CSharpDistribTest('macos', 'x86'), @@ -313,9 +326,15 @@ def targets(): PythonDistribTest('linux', 'x64', 'arch'), PythonDistribTest('linux', 'x64', 'ubuntu1204'), PythonDistribTest('linux', 'x64', 'ubuntu1404'), - PythonDistribTest('linux', 'x64', 'ubuntu1504'), - PythonDistribTest('linux', 'x64', 'ubuntu1510'), PythonDistribTest('linux', 'x64', 'ubuntu1604'), + PythonDistribTest('linux', 'x64', 'jessie', source=True), + PythonDistribTest('linux', 'x86', 'jessie', source=True), + PythonDistribTest('linux', 'x64', 'centos7', source=True), + PythonDistribTest('linux', 'x64', 'fedora22', source=True), + PythonDistribTest('linux', 'x64', 'fedora23', source=True), + PythonDistribTest('linux', 'x64', 'arch', source=True), + PythonDistribTest('linux', 'x64', 'ubuntu1404', source=True), + PythonDistribTest('linux', 'x64', 'ubuntu1604', source=True), RubyDistribTest('linux', 'x64', 'wheezy'), RubyDistribTest('linux', 'x64', 'jessie'), RubyDistribTest('linux', 'x86', 'jessie'), @@ -329,8 +348,6 @@ def targets(): RubyDistribTest('linux', 'x64', 'opensuse'), RubyDistribTest('linux', 'x64', 'ubuntu1204'), RubyDistribTest('linux', 'x64', 'ubuntu1404'), - RubyDistribTest('linux', 'x64', 'ubuntu1504'), - RubyDistribTest('linux', 'x64', 'ubuntu1510'), RubyDistribTest('linux', 'x64', 'ubuntu1604'), PHPDistribTest('linux', 'x64', 'jessie'), PHPDistribTest('macos', 'x64'), |