Skip to content

Commit b84fc57

Browse files
committed
indexer: Push image saved from built container
1 parent 342cb19 commit b84fc57

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

infra/build/functions/build_lib.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,10 @@ def get_targets_list_url(bucket, project, sanitizer):
139139
return url
140140

141141

142-
def dockerify_run_step(step, build, use_architecture_image_name=False):
142+
def dockerify_run_step(step,
143+
build,
144+
use_architecture_image_name=False,
145+
container_name=None):
143146
"""Modify a docker run step to run using gcr.io/cloud-builders/docker. This
144147
allows us to specify which architecture to run the image on."""
145148
image = step['name']
@@ -154,6 +157,10 @@ def dockerify_run_step(step, build, use_architecture_image_name=False):
154157
'run', '--platform', platform, '-v', '/workspace:/workspace',
155158
'--privileged', '--cap-add=all'
156159
]
160+
161+
if container_name:
162+
new_args.extend(['--name', container_name])
163+
157164
for env_var in step.get('env', {}):
158165
new_args.extend(['-e', env_var])
159166
new_args += ['-t', image]

infra/build/functions/build_project.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,10 @@ def get_build_steps_for_project(project,
503503
return build_steps
504504

505505

506+
def _indexer_built_image_name(name: str):
507+
return f'us-central1-docker.pkg.dev/oss-fuzz/indexer/{name}'
508+
509+
506510
def get_indexer_build_steps(project_name,
507511
project_yaml,
508512
dockerfile,
@@ -550,11 +554,31 @@ def get_indexer_build_steps(project_name,
550554
}
551555
build_lib.dockerify_run_step(index_step,
552556
build,
553-
use_architecture_image_name=build.is_arm)
557+
use_architecture_image_name=build.is_arm,
558+
container_name='indexed-container')
559+
560+
save_container_step = {
561+
'name':
562+
build_lib.DOCKER_TOOL_IMAGE,
563+
'args': [
564+
'container', 'commit', 'indexer-container',
565+
_indexer_built_image_name(project.name)
566+
],
567+
}
568+
push_image_step = {
569+
'name': build_lib.DOCKER_TOOL_IMAGE,
570+
'args': [
571+
'push',
572+
_indexer_built_image_name(project.name),
573+
],
574+
'allowFailure': True,
575+
}
554576

555577
# TODO: Don't upload anything if we're in trial build.
556578
build_steps.extend([
557579
index_step,
580+
save_container_step,
581+
push_image_step,
558582
{
559583
# TODO(metzman): Make sure not to incldue other tars, and support .tar.gz
560584
'name': get_uploader_image(),

0 commit comments

Comments
 (0)