فهرست منبع

differentiate C# android artifacts by ABI

Jan Tattermusch 7 سال پیش
والد
کامیت
71826b5196
2فایلهای تغییر یافته به همراه9 افزوده شده و 4 حذف شده
  1. 8 3
      tools/run_tests/artifacts/artifact_targets.py
  2. 1 1
      tools/run_tests/artifacts/build_artifact_csharp_android.sh

+ 8 - 3
tools/run_tests/artifacts/artifact_targets.py

@@ -212,11 +212,15 @@ class RubyArtifact:
 class CSharpExtArtifact:
 class CSharpExtArtifact:
     """Builds C# native extension library"""
     """Builds C# native extension library"""
 
 
-    def __init__(self, platform, arch):
+    def __init__(self, platform, arch, arch_abi=None):
         self.name = 'csharp_ext_%s_%s' % (platform, arch)
         self.name = 'csharp_ext_%s_%s' % (platform, arch)
         self.platform = platform
         self.platform = platform
         self.arch = arch
         self.arch = arch
+        self.arch_abi = arch_abi
         self.labels = ['artifact', 'csharp', platform, arch]
         self.labels = ['artifact', 'csharp', platform, arch]
+        if arch_abi:
+          self.name += '_%s' % arch_abi
+          self.labels.append(arch_abi)
 
 
     def pre_build_jobspecs(self):
     def pre_build_jobspecs(self):
         return []
         return []
@@ -227,7 +231,7 @@ class CSharpExtArtifact:
                 self.name,
                 self.name,
                 'tools/dockerfile/grpc_artifact_android_ndk',
                 'tools/dockerfile/grpc_artifact_android_ndk',
                 'tools/run_tests/artifacts/build_artifact_csharp_android.sh',
                 'tools/run_tests/artifacts/build_artifact_csharp_android.sh',
-                environ={})
+                environ={'ANDROID_ABI': self.arch_abi})
         elif self.platform == 'windows':
         elif self.platform == 'windows':
             cmake_arch_option = 'Win32' if self.arch == 'x86' else self.arch
             cmake_arch_option = 'Win32' if self.arch == 'x86' else self.arch
             return create_jobspec(
             return create_jobspec(
@@ -348,7 +352,8 @@ def targets():
         for Cls in (CSharpExtArtifact, ProtocArtifact)
         for Cls in (CSharpExtArtifact, ProtocArtifact)
         for platform in ('linux', 'macos', 'windows') for arch in ('x86', 'x64')
         for platform in ('linux', 'macos', 'windows') for arch in ('x86', 'x64')
     ] + [
     ] + [
-        CSharpExtArtifact('linux', 'android'),
+        CSharpExtArtifact('linux', 'android', arch_abi='arm64-v8a'),
+        CSharpExtArtifact('linux', 'android', arch_abi='armeabi-v7a'),
         PythonArtifact('linux', 'x86', 'cp27-cp27m'),
         PythonArtifact('linux', 'x86', 'cp27-cp27m'),
         PythonArtifact('linux', 'x86', 'cp27-cp27mu'),
         PythonArtifact('linux', 'x86', 'cp27-cp27mu'),
         PythonArtifact('linux', 'x86', 'cp34-cp34m'),
         PythonArtifact('linux', 'x86', 'cp34-cp34m'),

+ 1 - 1
tools/run_tests/artifacts/build_artifact_csharp_android.sh

@@ -17,7 +17,7 @@ set -ex
 
 
 cd "$(dirname "$0")/../../.."
 cd "$(dirname "$0")/../../.."
 
 
-export ANDROID_ABI=armeabi-v7a
+# ANDROID_ABI is set by the job definition in artifact_targets.py
 src/csharp/experimental/build_native_ext_for_android.sh
 src/csharp/experimental/build_native_ext_for_android.sh
 
 
 mkdir -p "${ARTIFACTS_OUT}"
 mkdir -p "${ARTIFACTS_OUT}"