def make_partials_artifacts(config, jobs): for job in jobs: locale = job["attributes"].get("locale") if not locale: locale = 'en-US' # Remove when proved reliable # job['treeherder']['tier'] = 3 platform = job["attributes"]["build_platform"] balrog_platform = get_balrog_platform_name(platform) artifacts = get_partials_artifacts(config.params.get('release_history'), balrog_platform, locale) # Dependency: | repackage-signing | partials-signing # Partials artifacts | Skip | Populate & yield # No partials | Yield | continue if len(artifacts) == 0: if 'partials-signing' in job['dependencies']: continue else: yield job continue else: if 'partials-signing' not in job['dependencies']: continue upstream_artifacts = generate_partials_upstream_artifacts( job, artifacts, balrog_platform, locale ) job['worker']['upstream-artifacts'].extend(upstream_artifacts) extra = list() artifact_map = get_partials_artifact_map( config.params.get('release_history'), balrog_platform, locale) for artifact in artifact_map: artifact_extra = { 'locale': locale, 'artifact_name': artifact, 'buildid': artifact_map[artifact]['buildid'], 'platform': balrog_platform, } for rel_attr in ('previousBuildNumber', 'previousVersion'): if artifact_map[artifact].get(rel_attr): artifact_extra[rel_attr] = artifact_map[artifact][rel_attr] extra.append(artifact_extra) job.setdefault('extra', {}) job['extra']['partials'] = extra yield job
def make_partials_artifacts(config, jobs): for job in jobs: locale = job["attributes"].get("locale") if not locale: locale = 'en-US' # Remove when proved reliable # job['treeherder']['tier'] = 3 platform = job["attributes"]["build_platform"] balrog_platform = get_balrog_platform_name(platform) artifacts = get_partials_artifacts(config.params.get('release_history'), balrog_platform, locale) # Dependency: | repackage-signing | partials-signing # Partials artifacts | Skip | Populate & yield # No partials | Yield | continue if len(artifacts) == 0: if 'partials-signing' in job['dependencies']: continue else: yield job continue else: if 'partials-signing' not in job['dependencies']: continue upstream_artifacts = generate_partials_upstream_artifacts( artifacts, balrog_platform, locale ) job['worker']['upstream-artifacts'].extend(upstream_artifacts) extra = list() artifact_map = get_partials_artifact_map( config.params.get('release_history'), balrog_platform, locale) for artifact in artifact_map: artifact_extra = { 'locale': locale, 'artifact_name': artifact, 'buildid': artifact_map[artifact]['buildid'], 'platform': balrog_platform, } for rel_attr in ('previousBuildNumber', 'previousVersion'): if artifact_map[artifact].get(rel_attr): artifact_extra[rel_attr] = artifact_map[artifact][rel_attr] extra.append(artifact_extra) job.setdefault('extra', {}) job['extra']['partials'] = extra yield job
def generate_partials_artifacts(job, release_history, platform, locale=None): artifact_prefix = get_artifact_prefix(job) if locale: artifact_prefix = '{}/{}'.format(artifact_prefix, locale) else: locale = 'en-US' artifacts = get_partials_artifacts(release_history, platform, locale) upstream_artifacts = [{ "taskId": { "task-reference": '<partials>' }, "taskType": 'partials', "paths": [ "{}/{}".format(artifact_prefix, path) for path, version in artifacts # TODO Use mozilla-version to avoid comparing strings. Otherwise Firefox 100 will be # considered smaller than Firefox 56 if version is None or version >= '56' ], "formats": ["autograph_hash_only_mar384"], }] old_mar_upstream_artifacts = { "taskId": { "task-reference": '<partials>' }, "taskType": 'partials', "paths": [ "{}/{}".format(artifact_prefix, path) for path, version in artifacts # TODO Use mozilla-version to avoid comparing strings. Otherwise Firefox 100 will be # considered smaller than Firefox 56 if version is not None and version < '56' ], "formats": ["mar"], } if old_mar_upstream_artifacts["paths"]: upstream_artifacts.append(old_mar_upstream_artifacts) return upstream_artifacts
def generate_upstream_artifacts(job, release_history, platform, locale=None): artifact_prefix = get_artifact_prefix(job) if locale: artifact_prefix = '{}/{}'.format(artifact_prefix, locale) else: locale = 'en-US' artifacts = get_partials_artifacts(release_history, platform, locale) upstream_artifacts = [{ "taskId": {"task-reference": '<partials>'}, "taskType": 'partials', "paths": ["{}/{}".format(artifact_prefix, p) for p in artifacts], "formats": ["mar_sha384"], }] return upstream_artifacts
def generate_upstream_artifacts(release_history, platform, locale=None): artifact_prefix = 'public/build' if locale: artifact_prefix = 'public/build/{}'.format(locale) else: locale = 'en-US' artifacts = get_partials_artifacts(release_history, platform, locale) upstream_artifacts = [{ "taskId": {"task-reference": '<partials>'}, "taskType": 'partials', "paths": ["{}/{}".format(artifact_prefix, p) for p in artifacts], "formats": ["mar_sha384"], }] return upstream_artifacts