aboutsummaryrefslogtreecommitdiff
path: root/infra/build/functions/base_images.py
diff options
context:
space:
mode:
authorkabeer27 <32016558+kabeer27@users.noreply.github.com>2020-07-31 10:12:09 +0530
committerGitHub <noreply@github.com>2020-07-31 14:42:09 +1000
commit8e4c7b92fd53b17b0f8f572cbda1e930370b39d6 (patch)
tree570d115b259a9b26584003681d8abe1211356d52 /infra/build/functions/base_images.py
parent5e3348cdb95d359613cb9931c14165de00e06e0c (diff)
downloadoss-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.py47
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)