aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests/build_artifacts.py
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2016-01-19 08:43:00 -0800
committerGravatar Jan Tattermusch <jtattermusch@google.com>2016-01-19 12:51:40 -0800
commit7eba1729f020cd186d8cb77f3a95e48bd205e45b (patch)
tree596cf3ecb3b64c76b7db9c2f4e240e1ac893a6fa /tools/run_tests/build_artifacts.py
parent4ecf24beebd43dee018a18394fd1cbaecf14fc66 (diff)
building artifacts under docker
Diffstat (limited to 'tools/run_tests/build_artifacts.py')
-rwxr-xr-xtools/run_tests/build_artifacts.py53
1 files changed, 32 insertions, 21 deletions
diff --git a/tools/run_tests/build_artifacts.py b/tools/run_tests/build_artifacts.py
index 47811b23bd..0d7e3bd56b 100755
--- a/tools/run_tests/build_artifacts.py
+++ b/tools/run_tests/build_artifacts.py
@@ -51,10 +51,33 @@ ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..'))
os.chdir(ROOT)
+def create_docker_jobspec(name, dockerfile_dir, shell_command, environ={},
+ flake_retries=0, timeout_retries=0):
+ """Creates jobspec for a task running under docker."""
+ environ = environ.copy()
+ environ['RUN_COMMAND'] = shell_command
+
+ #docker_args = ['-v', '%s/artifacts:/var/local/jenkins/grpc/artifacts' % ROOT]
+ docker_args=[]
+ for k,v in environ.iteritems():
+ docker_args += ['-e', '%s=%s' % (k, v)]
+ docker_env = {'DOCKERFILE_DIR': dockerfile_dir,
+ 'DOCKER_RUN_SCRIPT': 'tools/jenkins/docker_run.sh',
+ 'OUTPUT_DIR': 'artifacts'}
+ jobspec = jobset.JobSpec(
+ cmdline=['tools/jenkins/build_and_run_docker.sh'] + docker_args,
+ environ=docker_env,
+ shortname='build_artifact.%s' % (name),
+ timeout_seconds=30*60,
+ flake_retries=flake_retries,
+ timeout_retries=timeout_retries)
+ return jobspec
+
+
def create_jobspec(name, cmdline, environ=None, shell=False,
flake_retries=0, timeout_retries=0):
"""Creates jobspec."""
- test_job = jobset.JobSpec(
+ jobspec = jobset.JobSpec(
cmdline=cmdline,
environ=environ,
shortname='build_artifact.%s' % (name),
@@ -62,7 +85,7 @@ def create_jobspec(name, cmdline, environ=None, shell=False,
flake_retries=flake_retries,
timeout_retries=timeout_retries,
shell=shell)
- return test_job
+ return jobspec
def macos_arch_env(arch):
@@ -76,23 +99,6 @@ def macos_arch_env(arch):
return {'CFLAGS': arch_arg, 'LDFLAGS': arch_arg}
-class TestDockerArtifact:
- """Demo artifact that shows that docker-based artifacts work"""
-
- def __init__(self):
- self.name = 'test_docker_artifact'
- self.labels = ['docker', 'linux']
-
- def pre_build_jobspecs(self):
- return []
-
- def build_jobspec(self):
- return create_jobspec(self.name, ['sleep', '5'])
-
- def __str__(self):
- return self.name
-
-
class CSharpExtArtifact:
"""Builds C# native extension library"""
@@ -122,12 +128,17 @@ class CSharpExtArtifact:
'/p:PlatformToolset=v120',
'/p:Platform=%s' % msbuild_platform],
shell=True)
+ if self.platform == 'linux':
+ environ = {'CONFIG': 'opt'}
+ return create_docker_jobspec(self.name,
+ 'tools/jenkins/grpc_artifact_linux_%s' % self.arch,
+ 'tools/run_tests/build_artifact_csharp.sh')
else:
environ = {'CONFIG': 'opt'}
if self.platform == 'macos':
environ.update(macos_arch_env(self.arch))
return create_jobspec(self.name,
- ['make', 'grpc_csharp_ext'],
+ ['tools/run_tests/build_artifact_csharp.sh'],
environ=environ)
def __str__(self):
@@ -135,7 +146,7 @@ class CSharpExtArtifact:
_ARTIFACTS = [
- TestDockerArtifact(),
+ CSharpExtArtifact('linux', 'x86'),
CSharpExtArtifact('linux', 'x64'),
CSharpExtArtifact('macos', 'x86'),
CSharpExtArtifact('macos', 'x64'),