diff --git a/taskcluster/fenix_taskgraph/manifests/fenix_candidates.yml b/taskcluster/fenix_taskgraph/manifests/fenix_candidates.yml index a6a2d80fb..ba28a76a8 100644 --- a/taskcluster/fenix_taskgraph/manifests/fenix_candidates.yml +++ b/taskcluster/fenix_taskgraph/manifests/fenix_candidates.yml @@ -33,7 +33,7 @@ # `from_buildid` -- flag needed downstream in beetmover jobs to reckon the balrog manifest s3_bucket_paths: - by-release-type: + by-build-type: nightly: - pub/fenix/nightly default: @@ -66,22 +66,22 @@ mapping: description: "Android package for arm64-v8a" pretty_name: fenix-${version}.${locale}.android-arm64-v8a.apk destinations: - - ${version}/android-arm64-v8a + - ${dated_path}-fenix-${version}-android-arm64-v8a armeabi-v7a/target.apk: <<: *default description: "Android package for armeabi-v7a" pretty_name: fenix-${version}.${locale}.android-armeabi-v7a.apk destinations: - - ${version}/android-armeabi-v7a + - ${dated_path}-fenix-${version}-android-armeabi-v7a x86/target.apk: <<: *default description: "Android package for x86" pretty_name: fenix-${version}.${locale}.android-x86.apk destinations: - - ${version}/android-x86 + - ${dated_path}-fenix-${version}-android-x86 x86_64/target.apk: <<: *default description: "Android package for x86_64" pretty_name: fenix-${version}.${locale}.android-x86_64.apk destinations: - - ${version}/android-x86_64 + - ${dated_path}-fenix-${version}-android-x86_64 diff --git a/taskcluster/fenix_taskgraph/transforms/beetmover.py b/taskcluster/fenix_taskgraph/transforms/beetmover.py index f30cd8f2b..03e525501 100644 --- a/taskcluster/fenix_taskgraph/transforms/beetmover.py +++ b/taskcluster/fenix_taskgraph/transforms/beetmover.py @@ -56,6 +56,7 @@ def make_task_description(config, tasks): "worker-type": "beetmover", "worker": task["worker"], "scopes": [ + # TODO: Adjust scope "project:mobile:fenix:releng:beetmover:bucket:dep", "project:mobile:fenix:releng:beetmover:action:direct-push-to-bucket", ], diff --git a/taskcluster/fenix_taskgraph/util/scriptworker.py b/taskcluster/fenix_taskgraph/util/scriptworker.py index 53da83e84..a3f57090f 100644 --- a/taskcluster/fenix_taskgraph/util/scriptworker.py +++ b/taskcluster/fenix_taskgraph/util/scriptworker.py @@ -11,6 +11,7 @@ from datetime import datetime import jsone +from ..release_promotion import read_version_file from taskgraph.util.memoize import memoize from taskgraph.util.schema import resolve_keyed_by from taskgraph.util.taskcluster import get_artifact_prefix @@ -176,10 +177,13 @@ def generate_beetmover_artifact_map(config, job, **kwargs): "s3_bucket_paths", job["label"], **{ - "release-type": config.params['release_type'], + "build-type": job['attributes']['build-type'] } ) + + + for locale, dep in sorted(itertools.product(locales, dependencies)): paths = dict() for filename in map_config["mapping"]: @@ -221,15 +225,13 @@ def generate_beetmover_artifact_map(config, job, **kwargs): file_config, field, job["label"], - locale=locale, - path_platform=platform, - version=config.params["version"], + locale=locale ) # This format string should ideally be in the configuration file, # but this would mean keeping variable names in sync between code + config. destinations = [ - "{s3_bucket_path}/{dest_path}/{locale_prefix}/{filename}".format( + "{s3_bucket_path}/{dest_path}/{filename}".format( s3_bucket_path=bucket_path, dest_path=dest_path, locale_prefix=file_config["locale_prefix"], @@ -270,17 +272,15 @@ def generate_beetmover_artifact_map(config, job, **kwargs): for key in platforms.keys(): resolve_keyed_by(platforms, key, job["label"], platform=platform) + version = read_version_file() upload_date = datetime.fromtimestamp(config.params["build_date"]) + dated_path = upload_date.strftime("%Y/%m/%Y-%m-%d-%H-%M-%S") kwargs.update( { "locale": locale, - "version": config.params["version"], - "branch": config.params["project"], - "build_number": config.params["build_date"], - "year": upload_date.year, - "month": upload_date.strftime("%m"), # zero-pad the month - "upload_date": upload_date.strftime("%Y-%m-%d-%H-%M-%S"), + "version": version, + "dated_path": dated_path } ) kwargs.update(**platforms)