def make_partials_artifacts(config, jobs): for job in jobs: locale = job["attributes"].get("locale") if not locale: locale = 'en-US' platform = job["attributes"]["build_platform"] if 'partials-signing' not in job['dependencies']: yield job continue balrog_platform = get_balrog_platform_name(platform) artifacts = get_partials_artifacts_from_params( config.params.get('release_history'), balrog_platform, locale) upstream_artifacts = generate_partials_upstream_artifacts( job, artifacts, balrog_platform, locale) job['worker']['upstream-artifacts'].extend(upstream_artifacts) extra = list() partials_info = get_partials_info_from_params( config.params.get('release_history'), balrog_platform, locale) if should_use_artifact_map(platform): job['worker']['artifact-map'].extend( generate_beetmover_partials_artifact_map(config, job, partials_info, platform=platform, locale=locale)) for artifact in partials_info: artifact_extra = { 'locale': locale, 'artifact_name': artifact, 'buildid': partials_info[artifact]['buildid'], 'platform': balrog_platform, } for rel_attr in ('previousBuildNumber', 'previousVersion'): if partials_info[artifact].get(rel_attr): artifact_extra[rel_attr] = partials_info[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" platform = job["attributes"]["build_platform"] if "partials-signing" not in job["dependencies"]: yield job continue balrog_platform = get_balrog_platform_name(platform) artifacts = get_partials_artifacts_from_params( config.params.get("release_history"), balrog_platform, locale) upstream_artifacts = generate_partials_upstream_artifacts( job, artifacts, balrog_platform, locale) job["worker"]["upstream-artifacts"].extend(upstream_artifacts) extra = list() partials_info = get_partials_info_from_params( config.params.get("release_history"), balrog_platform, locale) job["worker"]["artifact-map"].extend( generate_beetmover_partials_artifact_map(config, job, partials_info, platform=platform, locale=locale)) for artifact in partials_info: artifact_extra = { "locale": locale, "artifact_name": artifact, "buildid": partials_info[artifact]["buildid"], "platform": balrog_platform, } for rel_attr in ("previousBuildNumber", "previousVersion"): if partials_info[artifact].get(rel_attr): artifact_extra[rel_attr] = partials_info[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_from_params(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