def testPut(self): expected_body = { 'bucket': 'bucket_name', 'tags': ['buildset:foo'], 'parameters_json': json.dumps(_BUILD_PARAMETERS, separators=(',', ':')), } response = buildbucket_service.Put( 'bucket_name', ['buildset:foo'], _BUILD_PARAMETERS) self._AssertCorrectResponse(response) self._AssertRequestMadeOnce('builds', method='PUT', body=expected_body)
def _RequestBuild(builder_name, change): deps_overrides = {dep.repository_url: dep.git_hash for dep in change.deps} parameters = { 'builder_name': builder_name, 'properties': { 'clobber': True, 'parent_got_revision': change.base_commit.git_hash, 'deps_revision_overrides': deps_overrides, }, } if change.patch: parameters['properties'].update(change.patch.BuildParameters()) # TODO: Look up Buildbucket bucket from builder_name. return buildbucket_service.Put(BUCKET, parameters)
def _RequestBuild(builder_name, change, bucket): base_as_dict = change.base_commit.AsDict() review_url = base_as_dict.get('review_url') if not review_url: raise BuildError('Could not find gerrit review url for commit: ' + str(base_as_dict)) change_id = base_as_dict.get('change_id') if not change_id: raise BuildError('Could not find gerrit change id for commit: ' + str(base_as_dict)) url_parts = urlparse.urlparse(review_url) base_review_url = urlparse.urlunsplit( (url_parts.scheme, url_parts.netloc, '', '', '')) patch = change_module.GerritPatch.FromUrl(review_url) change_info = gerrit_service.GetChange(base_review_url, patch.change) commit_url_parts = urlparse.urlparse(base_as_dict['url']) # Note: The ordering here for buildbucket v1 api is important. # crbug.com/937392 builder_tags = [] if change.patch: builder_tags.append(change.patch.BuildsetTags()) builder_tags.append('buildset:commit/gitiles/%s/%s/+/%s' % (commit_url_parts.netloc, change_info['project'], change.base_commit.git_hash)) deps_overrides = {dep.repository_url: dep.git_hash for dep in change.deps} parameters = { 'builder_name': builder_name, 'properties': { 'clobber': True, 'revision': change.base_commit.git_hash, 'deps_revision_overrides': deps_overrides, }, } if change.patch: parameters['properties'].update(change.patch.BuildParameters()) # TODO: Look up Buildbucket bucket from builder_name. return buildbucket_service.Put(bucket, builder_tags, parameters)
def _RequestBuild(builder_name, change): deps_overrides = {dep.repository_url: dep.git_hash for dep in change.deps} parameters = { 'builder_name': builder_name, 'properties': { 'clobber': True, 'parent_got_revision': change.base_commit.git_hash, 'deps_revision_overrides': deps_overrides, }, } if change.patch: # TODO: Support Gerrit. # https://github.com/catapult-project/catapult/issues/3599 parameters['properties'].update({ 'patch_storage': 'rietveld', 'rietveld': change.patch.server, 'issue': change.patch.issue, 'patchset': change.patch.patchset, }) # TODO: Look up Buildbucket bucket from builder_name. return buildbucket_service.Put(BUCKET, parameters)
def _RequestBuild(builder_name, change, bucket, build_tags, task=None): base_as_dict = change.base_commit.AsDict() review_url = base_as_dict.get('review_url') if not review_url: raise errors.BuildGerritUrlNotFound(str(change.base_commit)) url_parts = urlparse.urlparse(review_url) base_review_url = urlparse.urlunsplit( (url_parts.scheme, url_parts.netloc, '', '', '')) patch = change_module.GerritPatch.FromUrl(review_url) change_info = gerrit_service.GetChange(base_review_url, patch.change) commit_url_parts = urlparse.urlparse(base_as_dict['url']) # Note: The ordering here for buildbucket v1 api is important. # crbug.com/937392 builder_tags = [] if change.patch: builder_tags.append(change.patch.BuildsetTags()) builder_tags.append('buildset:commit/gitiles/%s/%s/+/%s' % (commit_url_parts.netloc, change_info['project'], change.base_commit.git_hash)) builder_tags.extend(['%s:%s' % (k, v) for k, v in build_tags.items()]) deps_overrides = {dep.repository_url: dep.git_hash for dep in change.deps} parameters = { 'builder_name': builder_name, 'properties': { 'clobber': True, 'revision': change.base_commit.git_hash, 'deps_revision_overrides': deps_overrides, }, } if change.patch: parameters['properties'].update(change.patch.BuildParameters()) logging.debug('bucket: %s', bucket) logging.debug('builder_tags: %s', builder_tags) logging.debug('parameters: %s', parameters) pubsub_callback = None if build_tags: # This means we have access to Pinpoint job details, we should provide this # information to the attempts to build. pubsub_callback = { # TODO(dberris): Consolidate constants in environment vars? 'topic': 'projects/chromeperf/topics/pinpoint-swarming-updates', 'auth_token': 'UNUSED', 'user_data': json.dumps({ 'job_id': build_tags.get('pinpoint_job_id'), 'task': { 'type': 'build', 'id': build_tags.get('pinpoint_task_id') if not task else task.id, } }) } logging.debug('pubsub_callback: %s', pubsub_callback) # TODO: Look up Buildbucket bucket from builder_name. return buildbucket_service.Put(bucket, builder_tags, parameters, pubsub_callback)