diff options
author | kabeer27 <32016558+kabeer27@users.noreply.github.com> | 2020-07-31 10:12:09 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-31 14:42:09 +1000 |
commit | 8e4c7b92fd53b17b0f8f572cbda1e930370b39d6 (patch) | |
tree | 570d115b259a9b26584003681d8abe1211356d52 /infra/build/functions/base_images.py | |
parent | 5e3348cdb95d359613cb9931c14165de00e06e0c (diff) | |
download | oss-fuzz-8e4c7b92fd53b17b0f8f572cbda1e930370b39d6.tar.gz |
Adding msan builder to gcp (#4234)
* Adding msan builder to gcp
* Formatting changes
* Refactoring and reducing redundancy
* Moving msan builder entry point into base_images
Diffstat (limited to 'infra/build/functions/base_images.py')
-rw-r--r-- | infra/build/functions/base_images.py | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/infra/build/functions/base_images.py b/infra/build/functions/base_images.py index a56e9ffb5..20fffbe39 100644 --- a/infra/build/functions/base_images.py +++ b/infra/build/functions/base_images.py @@ -21,37 +21,56 @@ import google.auth from googleapiclient.discovery import build import build_base_images +import build_msan_libs BASE_PROJECT = 'oss-fuzz-base' # pylint: disable=no-member -def base_builder(event, context): - """Cloud function to build base images.""" - del event, context +def run_build(steps, images): + """Execute the retrieved build steps in gcp.""" credentials, _ = google.auth.default() - tag_prefix = f'gcr.io/{BASE_PROJECT}/' build_body = { - 'steps': - build_base_images.get_steps(build_base_images.BASE_IMAGES, - tag_prefix), - 'timeout': - str(4 * 3600) + 's', + 'steps': steps, + 'timeout': str(6 * 3600) + 's', 'options': { 'machineType': 'N1_HIGHCPU_32' }, - 'images': [ - tag_prefix + base_image - for base_image in build_base_images.BASE_IMAGES - ], + 'images': images } cloudbuild = build('cloudbuild', 'v1', credentials=credentials, cache_discovery=False) - build_info = cloudbuild.projects().builds().create(projectId=BASE_PROJECT, + build_info = cloudbuild.projects().builds().create(project_id=BASE_PROJECT, body=build_body).execute() build_id = build_info['metadata']['build']['id'] logging.info('Build ID: %s', build_id) logging.info('Logs: %s', build_base_images.get_logs_url(build_id, BASE_PROJECT)) + + +def base_builder(event, context): + """Cloud function to build base images.""" + del event, context + + tag_prefix = f'gcr.io/{BASE_PROJECT}/' + steps = build_base_images.get_steps(build_base_images.BASE_IMAGES, tag_prefix) + images = [ + tag_prefix + base_image for base_image in build_base_images.BASE_IMAGES + ] + + run_build(steps, images) + + +def base_msan_builder(event, context): + """Cloud function to build base images.""" + del event, context + image = f'gcr.io/{BASE_PROJECT}/msan-libs-builder' + steps = build_msan_libs.get_steps(image) + images = [ + f'gcr.io/{BASE_PROJECT}/base-sanitizer-libs-builder', + image, + ] + + run_build(steps, images) |