77
88from taskgraph .transforms .base import TransformSequence
99from taskgraph .util .copy import deepcopy
10- from taskgraph .util .dependencies import get_primary_dependency
10+ from taskgraph .util .dependencies import get_primary_dependency , get_dependencies
1111from taskgraph .util .schema import Schema , optionally_keyed_by , resolve_keyed_by
1212from taskgraph .util .taskcluster import get_artifact_prefix
1313from voluptuous import Any , Extra , Optional , Required
@@ -416,6 +416,7 @@ def handle_keyed_by(config, jobs):
416416 "worker.max-run-time" ,
417417 "flatpak.name" ,
418418 "flatpak.branch" ,
419+ "treeherder" ,
419420 ]
420421 for job in jobs :
421422 job = deepcopy (job ) # don't overwrite dict values here
@@ -487,14 +488,30 @@ def make_job_description(config, jobs):
487488 if "repack" in dep_job .label :
488489 variant = f"{ variant } -ent"
489490
490- treeherder ["symbol" ] = f"Rpk({ platform_simple } { variant } )"
491+ repack_id = dep_job .task .get ("extra" ).get ("repack_id" )
492+ if repack_id :
493+ variant = f"-{ repack_id } "
491494
492- if "enterprise-repack" in dep_job .label :
495+ treeherder ["symbol" ] = f"Rpk({ platform_simple } { variant } )"
496+
497+ if "enterprise-repack" in dep_job .kind :
493498 job ["label" ] = job ["label" ].replace (
494499 "repackage" , "repackage-enterprise-repack"
495500 )
496501
497502 dep_th_platform = dep_job .task .get ("extra" , {}).get ("treeherder-platform" )
503+ # TODO: Hack because we loose the platform that was from enterprise-repack
504+ if not dep_th_platform and "enterprise-repack-repackage" in dep_job .kind :
505+ build_platform = attributes .get ("build_platform" )
506+ if "linux64" in build_platform :
507+ dep_th_platform = "linux64/opt"
508+ elif "macosx64" in build_platform :
509+ dep_th_platform = "osx-cross/opt"
510+ elif "win64" in build_platform :
511+ dep_th_platform = "windows2012-64/opt"
512+ else :
513+ raise ValueError (f"Unsupported { build_platform } " )
514+
498515 treeherder .setdefault ("platform" , dep_th_platform )
499516 treeherder .setdefault ("tier" , 1 )
500517 treeherder .setdefault ("kind" , "build" )
@@ -505,6 +522,8 @@ def make_job_description(config, jobs):
505522 for dependency in dependencies .keys ():
506523 if "repackage-signing" in dependency :
507524 repackage_signing_task = dependency
525+ elif "enterprise-repack-repackage" in dependency :
526+ repackage_signing_task = dependency
508527 elif "signing" in dependency or "notarization" in dependency :
509528 signing_task = dependency
510529 elif "shippable-l10n" in dependency :
@@ -811,6 +830,8 @@ def _generate_download_config(
811830
812831 if "enterprise-repack" in task .label :
813832 enterprise_repacks = task .attributes .get ("enterprise_repacks" , [])
833+ if not enterprise_repacks :
834+ enterprise_repacks = [ task .task .get ("extra" ).get ("repack_id" ) ]
814835 # TODO: Only one repack, gcpEU for now
815836 locale_path = f"{ enterprise_repacks [0 ]} /"
816837
0 commit comments