def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'c-Up(N)') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') attributes = copy_attributes_from_dependent_job(dep_job) treeherder_job_symbol = dep_job.attributes.get('locale', 'N') if dep_job.attributes.get('locale'): treeherder['symbol'] = 'c-Up({})'.format(treeherder_job_symbol) attributes['locale'] = dep_job.attributes.get('locale') label = job['label'] description = ("Balrog submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type'))) upstream_artifacts = [{ "taskId": { "task-reference": "<beetmover>" }, "taskType": "beetmover", "paths": ["public/manifest.json"], }] server_scope = get_balrog_server_scope(config) channel_scopes = get_balrog_channel_scopes(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': 'scriptworker-prov-v1/balrogworker-v1', 'worker': { 'implementation': 'balrog', 'upstream-artifacts': upstream_artifacts, }, 'scopes': [server_scope] + channel_scopes, 'dependencies': { 'beetmover': dep_job.label }, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': job.get('shipping-phase', phase), 'shipping-product': job.get('shipping-product'), } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = dep_job.attributes treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'BM-S') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault( 'tier', dep_job.task.get('extra', {}).get('treeherder', {}).get('tier', 1) ) treeherder.setdefault('kind', 'build') label = job['label'] description = ( "Beetmover submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type') ) ) dependent_kind = str(dep_job.kind) dependencies = {dependent_kind: dep_job.label} if len(dep_job.dependencies) > 1: raise NotImplementedError( "Can't beetmove a signing task with multiple dependencies") signing_dependencies = dep_job.dependencies dependencies.update(signing_dependencies) attributes = copy_attributes_from_dependent_job(dep_job) if job.get('locale'): attributes['locale'] = job['locale'] bucket_scope = get_beetmover_bucket_scope(config) action_scope = get_beetmover_action_scope(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': get_worker_type_for_scope(config, bucket_scope), 'scopes': [bucket_scope, action_scope], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': phase, } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = dep_job.attributes treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'BM-S') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') label = job['label'] description = ( "Beetmover submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type') ) ) dependent_kind = str(dep_job.kind) dependencies = {dependent_kind: dep_job.label} if len(dep_job.dependencies) > 1: raise NotImplementedError( "Can't beetmove a signing task with multiple dependencies") signing_dependencies = dep_job.dependencies dependencies.update(signing_dependencies) attributes = copy_attributes_from_dependent_job(dep_job) if job.get('locale'): attributes['locale'] = job['locale'] bucket_scope = get_beetmover_bucket_scope(config) action_scope = get_beetmover_action_scope(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': 'scriptworker-prov-v1/beetmoverworker-v1', 'scopes': [bucket_scope, action_scope], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': phase, } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = dep_job.attributes treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'BM-gv') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', '{}/opt'.format(dep_th_platform)) treeherder.setdefault('tier', 2) treeherder.setdefault('kind', 'build') label = job['label'] description = ("Beetmover submission for geckoview" "{build_platform}/{build_type}'".format( build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type'))) dependent_kind = str(dep_job.kind) dependencies = {dependent_kind: dep_job.label} attributes = copy_attributes_from_dependent_job(dep_job) if job.get('locale'): attributes['locale'] = job['locale'] resolve_keyed_by(job, 'bucket-scope', item_name=job['label'], project=config.params['project']) task = { 'label': label, 'description': description, 'worker-type': get_worker_type_for_scope(config, job['bucket-scope']), 'scopes': [ job['bucket-scope'], 'project:releng:beetmover:action:push-to-maven' ], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': ['mozilla-central'], 'treeherder': treeherder, 'shipping-phase': job.get('shipping-phase', get_phase(config)), } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = copy_attributes_from_dependent_job(dep_job) treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'BM-SGenChcks') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') job_template = "{}".format(dep_job.label) label = job_template.replace("signing", "beetmover") description = "Transfer *SUMS and *SUMMARY checksums file to S3." # first dependency is the signing task for the *SUMS files dependencies = { str(dep_job.kind): dep_job.label } if len(dep_job.dependencies) > 1: raise NotImplementedError( "Can't beetmove a signing task with multiple dependencies") # update the dependencies with the dependencies of the signing task dependencies.update(dep_job.dependencies) bucket_scope = get_beetmover_bucket_scope(config) action_scope = get_beetmover_action_scope(config) phase = get_phase(config) resolve_keyed_by( job, 'worker-type', item_name=label, project=config.params['project'] ) task = { 'label': label, 'description': description, 'worker-type': job['worker-type'], 'scopes': [bucket_scope, action_scope], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': phase, } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = dep_job.attributes treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'BM-R') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') label = job['label'] description = ("Beetmover submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type'))) dependent_kind = dep_job.kind if dependent_kind == 'repackage-signing-l10n': dependent_kind = "repackage-signing" dependencies = {dependent_kind: dep_job} signing_name = "build-signing" if job.get('locale'): signing_name = "nightly-l10n-signing" dependencies['signing'] = job['grandparent-tasks'][signing_name] build_name = "build" if job.get('locale'): build_name = "unsigned-repack" dependencies["build"] = job['grandparent-tasks'][build_name] # repackage-l10n actually uses the repackage depname here dependencies["repackage"] = job['grandparent-tasks']["repackage"] # If this isn't a direct dependency, it won't be in there. if 'repackage-signing' not in dependencies: repackage_signing_name = "repackage-signing" if job.get('locale'): repackage_signing_name = "repackage-signing-l10n" dependencies["repackage-signing"] = job['grandparent-tasks'][ repackage_signing_name] attributes = copy_attributes_from_dependent_job(dep_job) if job.get('locale'): attributes['locale'] = job['locale'] bucket_scope = get_beetmover_bucket_scope(config) action_scope = get_beetmover_action_scope(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': get_worker_type_for_scope(config, bucket_scope), 'scopes': [bucket_scope, action_scope], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': job.get('shipping-phase', phase), 'shipping-product': job.get('shipping-product'), } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'c-Up(N)') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') attributes = copy_attributes_from_dependent_job(dep_job) treeherder_job_symbol = dep_job.attributes.get('locale', 'N') if dep_job.attributes.get('locale'): treeherder['symbol'] = 'c-Up({})'.format(treeherder_job_symbol) attributes['locale'] = dep_job.attributes.get('locale') label = job['label'] description = ( "Balrog submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type') ) ) upstream_artifacts = [{ "taskId": {"task-reference": "<beetmover>"}, "taskType": "beetmover", "paths": [ "public/manifest.json" ], }] server_scope = get_balrog_server_scope(config) channel_scopes = get_balrog_channel_scopes(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': 'scriptworker-prov-v1/balrogworker-v1', 'worker': { 'implementation': 'balrog', 'upstream-artifacts': upstream_artifacts, }, 'scopes': [server_scope] + channel_scopes, 'dependencies': {'beetmover': dep_job.label}, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': job.get('shipping-phase', phase), 'shipping-product': job.get('shipping-product'), 'notifications': job.get('notifications'), } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = dep_job.attributes treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'BM-R') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') label = job['label'] description = ( "Beetmover submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type') ) ) dependent_kind = str(dep_job.kind) dependencies = {dependent_kind: dep_job.label} signing_name = "build-signing" if job.get('locale'): signing_name = "nightly-l10n-signing" signing_dependencies = {signing_name: dep_job.dependencies[signing_name] } dependencies.update(signing_dependencies) build_name = "build" if job.get('locale'): build_name = "unsigned-repack" build_dependencies = {"build": dep_job.dependencies[build_name] } dependencies.update(build_dependencies) repackage_name = "repackage" # repackage-l10n actually uses the repackage depname here repackage_dependencies = {"repackage": dep_job.dependencies[repackage_name] } dependencies.update(repackage_dependencies) # If this isn't a direct dependency, it won't be in there. if 'repackage-signing' not in dependencies: repackage_signing_name = "repackage-signing" repackage_signing_deps = {"repackage-signing": dep_job.dependencies[repackage_signing_name] } dependencies.update(repackage_signing_deps) attributes = copy_attributes_from_dependent_job(dep_job) if job.get('locale'): attributes['locale'] = job['locale'] bucket_scope = get_beetmover_bucket_scope(config) action_scope = get_beetmover_action_scope(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': 'scriptworker-prov-v1/beetmoverworker-v1', 'scopes': [bucket_scope, action_scope], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': job.get('shipping-phase', phase), 'shipping-product': job.get('shipping-product'), } yield task
def make_task_description(config, jobs): for job in jobs: dep_job = job['dependent-task'] attributes = dep_job.attributes treeherder = job.get('treeherder', {}) treeherder.setdefault('symbol', 'tc(BM-R)') dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') treeherder.setdefault('platform', "{}/opt".format(dep_th_platform)) treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') label = job['label'] description = ("Beetmover submission for locale '{locale}' for build '" "{build_platform}/{build_type}'".format( locale=attributes.get('locale', 'en-US'), build_platform=attributes.get('build_platform'), build_type=attributes.get('build_type'))) dependent_kind = str(dep_job.kind) dependencies = {dependent_kind: dep_job.label} if 'docker-image' in dep_job.dependencies: # macosx nightly builds depend on repackage which use in tree # docker images and thus have two dependencies # change the signing_dependencies to be use the ones in docker_dependencies = { "docker-image": dep_job.dependencies['docker-image'] } dependencies.update(docker_dependencies) signing_name = "build-signing" if job.get('locale'): signing_name = "nightly-l10n-signing" signing_dependencies = { signing_name: dep_job.dependencies[signing_name] } dependencies.update(signing_dependencies) build_name = "build" if job.get('locale'): build_name = "unsigned-repack" build_dependencies = {"build": dep_job.dependencies[build_name]} dependencies.update(build_dependencies) repackage_name = "repackage" # repackage-l10n actually uses the repackage depname here repackage_dependencies = { "repackage": dep_job.dependencies[repackage_name] } dependencies.update(repackage_dependencies) # If this isn't a direct dependency, it won't be in there. if 'repackage-signing' not in dependencies: repackage_signing_name = "repackage-signing" repackage_signing_deps = { "repackage-signing": dep_job.dependencies[repackage_signing_name] } dependencies.update(repackage_signing_deps) attributes = copy_attributes_from_dependent_job(dep_job) if job.get('locale'): attributes['locale'] = job['locale'] bucket_scope = get_beetmover_bucket_scope(config) action_scope = get_beetmover_action_scope(config) phase = get_phase(config) task = { 'label': label, 'description': description, 'worker-type': 'scriptworker-prov-v1/beetmoverworker-v1', 'scopes': [bucket_scope, action_scope], 'dependencies': dependencies, 'attributes': attributes, 'run-on-projects': dep_job.attributes.get('run_on_projects'), 'treeherder': treeherder, 'shipping-phase': job.get('shipping-phase', phase), 'shipping-product': job.get('shipping-product'), } yield task