Bug 1527206 - roll-out declarative artifacts for Fennec beta and release. r=sfraser a=release
authorMihai Tabara <mtabara@mozilla.com>
Mon, 18 Mar 2019 13:25:16 +0000
changeset 525632 a1d4c53a4b8057ca4cf27882ab2439bde16115fa
parent 525631 f4ca1bf5b4ac617363dbb2cd0772cf2c674c1ef7
child 525633 8e2110929e6eadb195cc669b83269ec58cf9fc96
push id2032
push userffxbld-merge
push dateMon, 13 May 2019 09:36:57 +0000
treeherdermozilla-release@455c1065dcbe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssfraser, release
bugs1527206
milestone67.0
Bug 1527206 - roll-out declarative artifacts for Fennec beta and release. r=sfraser a=release
taskcluster/ci/beetmover-checksums/kind.yml
taskcluster/ci/beetmover/kind.yml
taskcluster/ci/release-beetmover-source-checksums/kind.yml
taskcluster/taskgraph/manifests/fennec_candidates.yml
taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
taskcluster/taskgraph/manifests/fennec_geckoview.yml
taskcluster/taskgraph/manifests/fennec_nightly.yml
taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
taskcluster/taskgraph/manifests/release_checksums.yml
taskcluster/taskgraph/manifests/source_checksums.yml
taskcluster/taskgraph/manifests/source_files.yml
taskcluster/taskgraph/transforms/beetmover.py
taskcluster/taskgraph/transforms/beetmover_checksums.py
taskcluster/taskgraph/transforms/beetmover_source_checksums.py
taskcluster/taskgraph/transforms/release_generate_checksums_beetmover.py
taskcluster/taskgraph/transforms/release_generate_checksums_signing.py
taskcluster/taskgraph/util/scriptworker.py
--- a/taskcluster/ci/beetmover-checksums/kind.yml
+++ b/taskcluster/ci/beetmover-checksums/kind.yml
@@ -15,11 +15,21 @@ kind-dependencies:
 only-for-attributes:
    - nightly
 
 job-template:
    shipping-phase: promote
    attributes:
       artifact_prefix: public
       artifact_map:
-         by-platform:
-            android.*: taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
-            default: taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
+         by-project:
+            default:
+               by-platform:
+                  android.*: taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
+                  default: taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
+            mozilla-beta:
+               by-platform:
+                  android.*: taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
+                  default: taskcluster/taskgraph/manifests/firefox_candidates_checksums.yml
+            mozilla-release:
+               by-platform:
+                  android.*: taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
+                  default: taskcluster/taskgraph/manifests/firefox_candidates_checksums.yml
--- a/taskcluster/ci/beetmover/kind.yml
+++ b/taskcluster/ci/beetmover/kind.yml
@@ -29,9 +29,13 @@ not-for-build-platforms:
     - win64-devedition-nightly/opt
     - win64-aarch64-devedition-nightly/opt
     - linux64-asan-reporter-nightly/opt
     - win64-asan-reporter-nightly/opt
 
 job-template:
     shipping-phase: promote
     attributes:
-        artifact_map: taskcluster/taskgraph/manifests/fennec_nightly.yml
+        artifact_map:
+            by-project:
+                mozilla-release: taskcluster/taskgraph/manifests/fennec_candidates.yml
+                mozilla-beta: taskcluster/taskgraph/manifests/fennec_candidates.yml
+                default: taskcluster/taskgraph/manifests/fennec_nightly.yml
--- a/taskcluster/ci/release-beetmover-source-checksums/kind.yml
+++ b/taskcluster/ci/release-beetmover-source-checksums/kind.yml
@@ -10,9 +10,10 @@ transforms:
    - taskgraph.transforms.task:transforms
 
 kind-dependencies:
    - release-source-checksums-signing
 
 job-template:
    shipping-phase: promote
    attributes:
+      artifact_prefix: public
       artifact_map: taskcluster/taskgraph/manifests/source_checksums.yml
new file mode 100644
--- /dev/null
+++ b/taskcluster/taskgraph/manifests/fennec_candidates.yml
@@ -0,0 +1,156 @@
+---
+s3_bucket_paths:
+  - pub/mobile/candidates
+default_locales:  # if given an empty locale, use these locales
+  - en-US
+  - multi
+tasktype_map:  # map task reference to task type.
+  build: build
+  build-signing: signing
+  nightly-l10n-signing: signing
+platform_names:
+  path_platform:
+    by-platform:
+      android-x86-nightly: 'android-x86'
+      android-x86_64-nightly: 'android-x86_64'
+      android-api-16-nightly: 'android-api-16'
+      android-aarch64-nightly: 'android-aarch64'
+  filename_platform:
+    by-platform:
+      android-x86-nightly: 'android-i386'
+      android-x86_64-nightly: 'android-x86_64'
+      android-api-16-nightly: 'android-arm'
+      android-aarch64-nightly: 'android-aarch64'
+
+# A default entry, which the mappings below extend and override.
+# Final 'destinations' will be the product of:
+# s3_bucket_paths + destinations + locale_prefix + pretty_name
+default: &default
+  from:
+    - build
+  all_locales: false
+  description: "TODO"
+  locale_prefix: '${locale}/'
+  # anything between artifact prefix and filename within upstream task
+  source_path_modifier:
+    by-locale:
+      default: '${locale}'
+      multi: ''
+  destinations:
+    - ${version}-candidates/build${build_number}/${path_platform}
+
+# configuration for individual files. Extends 'default', above.
+mapping:
+  buildhub.json:
+    <<: *default
+    all_locales: true
+    description: "Build related information to be consumed by Buildhub service"
+    pretty_name: buildhub.json
+    checksums_path: ${path_platform}/${locale}/buildhub.json
+  target.common.tests.tar.gz:
+    <<: *default
+    description: "Mixture of reftests, mochitests, UI and others, commonly bundled together in a test suite"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.common.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.common.tests.tar.gz
+  target.cppunittest.tests.tar.gz:
+    <<: *default
+    description: "C++ unittests related in-tree test infrastructure"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.cppunittest.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.cppunittest.tests.tar.gz
+  target.crashreporter-symbols.zip:
+    <<: *default
+    description: "Crashreporter symbols to be consumed by Socorro"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.crashreporter-symbols.zip
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.crashreporter-symbols.zip
+  target.json:
+    <<: *default
+    all_locales: true
+    description: "Various compile and moz_app flags baked together in a json file"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.json
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.json
+  target.mochitest.tests.tar.gz:
+    <<: *default
+    description: "Results for running the mochitest testing framework via Javascript function calls"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.mochitest.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.mochitest.tests.tar.gz
+  target.mozinfo.json:
+    <<: *default
+    all_locales: true
+    description: "Various compile and moz_app flags baked together in a json file"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.mozinfo.json
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.mozinfo.json
+  target.reftest.tests.tar.gz:
+    <<: *default
+    description: "Results for running the reftest testing framework via display of two Web pages comparison"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.reftest.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.reftest.tests.tar.gz
+  target.talos.tests.tar.gz:
+    <<: *default
+    description: "Results for running the talos testing framework to measure performance"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.talos.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.talos.tests.tar.gz
+  target.awsy.tests.tar.gz:
+    <<: *default
+    description: "Results for running the awsy testing framework to track memory usage"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.awsy.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.awsy.tests.tar.gz
+  target.test_packages.json:
+    <<: *default
+    description: "File containing metadata about all other files and testing harnesses specifics"
+    all_locales: true
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.test_packages.json
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.test_packages.json
+  target.txt:
+    <<: *default
+    description: "File containing buildid and revision"
+    all_locales: true
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.txt
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.txt
+  target.web-platform.tests.tar.gz:
+    <<: *default
+    description: "Results for running the webplatform testing framework to cover standard Web platform features"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.web-platform.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.web-platform.tests.tar.gz
+  target.xpcshell.tests.tar.gz:
+    <<: *default
+    description: "Results for running the xpcshell testing framework to enable XPConnect console application"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.xpcshell.tests.tar.gz
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.xpcshell.tests.tar.gz
+  target_info.txt:
+    <<: *default
+    all_locales: true
+    locale_prefix: ''
+    description: "File containing the buildID"
+    pretty_name: ${path_platform}_info.txt
+    checksums_path: ${path_platform}_info.txt
+    destinations:
+      - ${version}-candidates/build${build_number}
+  mozharness.zip:
+    <<: *default
+    description: "File containing the mozharness set of scripts and configuration used by various automation tools"
+    pretty_name: mozharness.zip
+    checksums_path: mozharness.zip
+  robocop.apk:
+    <<: *default
+    description: "APK to enable the Robocop testing framework "
+    all_locales: true
+    pretty_name: robocop.apk
+    checksums_path: robocop.apk
+  target.jsshell.zip:
+    <<: *default
+    description: "Set of shells to allow test snippets of Javascript code without needing to reload the page"
+    pretty_name: jsshell-${filename_platform}.zip
+    checksums_path: jsshell-${filename_platform}.zip
+  target.apk:
+    <<: *default
+    description: "The main installer we ship our mobile products baked within"
+    all_locales: true
+    from:
+      - build-signing
+      - nightly-l10n-signing
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.apk
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.apk
+    update_balrog_manifest:
+      by-locale:
+        multi: true
+        default: false
new file mode 100644
--- /dev/null
+++ b/taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
@@ -0,0 +1,50 @@
+---
+s3_bucket_paths:
+  - pub/mobile/candidates
+default_locales:  # if given an empty locale, use these locales
+  - en-US
+tasktype_map:  # Map task reference to task type.
+  checksums-signing: signing
+platform_names:
+  path_platform:
+    by-platform:
+      android-x86-nightly: 'android-x86'
+      android-x86_64-nightly: 'android-x86_64'
+      android-api-16-nightly: 'android-api-16'
+      android-aarch64-nightly: 'android-aarch64'
+  filename_platform:
+    by-platform:
+      android-x86-nightly: 'android-i386'
+      android-x86_64-nightly: 'android-x86_64'
+      android-api-16-nightly: 'android-arm'
+      android-aarch64-nightly: 'android-aarch64'
+
+# A default entry, which the mappings below extend and override.
+# Final 'destinations' will be the product of:
+# s3_bucket_paths + destinations + locale_prefix + pretty_name
+default: &default
+  from:
+    - checksums-signing
+  all_locales: true
+  description: "TODO"
+  locale_prefix:
+    by-locale:
+      default: ''
+      en-US: '${locale}/'
+  source_path_modifier: ''
+  destinations:
+    - ${version}-candidates/build${build_number}/beetmover-checksums/${path_platform}
+    - ${version}-candidates/build${build_number}/${path_platform}
+
+# Configuration for individual files. Extends 'default', above.
+mapping:
+  target.checksums:
+    <<: *default
+    description: "Checksums file containing size, hash, sha algorithm and filename"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.checksums.beet
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.checksums
+  target.checksums.asc:
+    <<: *default
+    description: "Detached signature for the checksums file"
+    pretty_name: fennec-${version}.${locale}.${filename_platform}.checksums.asc
+    checksums_path: fennec-${version}.${locale}.${filename_platform}.checksums.asc
--- a/taskcluster/taskgraph/manifests/fennec_geckoview.yml
+++ b/taskcluster/taskgraph/manifests/fennec_geckoview.yml
@@ -1,13 +1,9 @@
 ---
-metadata:
-  name: "Beetmover for checksums artifacts"
-  description: "Uploads checksum files to s3 buckets"
-  owner: "release@mozilla.com"
 s3_bucket_paths:
   - maven2
 default_locales:  # Ignored for geckoview
   - en-US
 tasktype_map:  # Map task reference to task type.
   build: build
 base_artifact_prefix: ''
 platform_names:
@@ -17,17 +13,17 @@ platform_names:
 # A default entry, which the mappings below extend and override.
 # Final 'destinations' will be the product of:
 # s3_bucket_paths + destinations + locale_prefix + pretty_name
 default: &default
   from:
     - build
   locale_prefix: ''
   source_path_modifier: org/mozilla/geckoview/${artifact_id}/${major_version}.${minor_version}.${build_date}
-  description: "TODO"
+  description: ""
   destinations:  # locale_prefix is appended
     - org/mozilla/geckoview/${artifact_id}/${major_version}.${minor_version}.${build_date}
 
 # Configuration for individual files. Extends 'default', above.
 upstream_mapping:
   target.maven.zip:
     from:
       - build
--- a/taskcluster/taskgraph/manifests/fennec_nightly.yml
+++ b/taskcluster/taskgraph/manifests/fennec_nightly.yml
@@ -1,13 +1,9 @@
 ---
-metadata:
-  description: Fennec nightly artifacts
-  name: Beetmover declarative artifacts manifest
-  owner: release@mozilla.com
 s3_bucket_paths:
   - pub/mobile/nightly
 default_locales:  # if given an empty locale, use these locales
   - en-US
   - multi
 tasktype_map:  # Map task reference to task type.
   build: build
   build-signing: signing
@@ -54,98 +50,114 @@ default: &default
         - latest-${branch}-${path_platform}-l10n
         - ${year}/${month}/${upload_date}-${branch}-${path_platform}-l10n
 
 # Configuration for individual files. Extends 'default', above.
 mapping:
   buildhub.json:
     <<: *default
     all_locales: true
+    description: "Build related information to be consumed by Buildhub service"
     locale_prefix: ''
     pretty_name: fennec-${version}.${locale}.${filename_platform}.buildhub.json
     checksums_path: fennec-${version}.${locale}.${filename_platform}.buildhub.json
   target.common.tests.tar.gz:
     <<: *default
+    description: "Mixture of reftests, mochitests, UI and others, commonly bundled together in a test suite"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.common.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.common.tests.tar.gz
   target.cppunittest.tests.tar.gz:
     <<: *default
+    description: "C++ unittests related in-tree test infrastructure"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.cppunittest.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.cppunittest.tests.tar.gz
   target.crashreporter-symbols.zip:
     <<: *default
+    description: "Crashreporter symbols to be consumed by Socorro"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.crashreporter-symbols.zip
     checksums_path: fennec-${version}.${locale}.${filename_platform}.crashreporter-symbols.zip
   target.json:
     <<: *default
     all_locales: true
+    description: "Various compile and moz_app flags baked together in a json file"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.json
     checksums_path: fennec-${version}.${locale}.${filename_platform}.json
   target.mochitest.tests.tar.gz:
     <<: *default
+    description: "Results for running the mochitest testing framework via Javascript function calls"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.mochitest.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.mochitest.tests.tar.gz
   target.mozinfo.json:
     <<: *default
     all_locales: true
+    description: "Various compile and moz_app flags baked together in a json file"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.mozinfo.json
     checksums_path: fennec-${version}.${locale}.${filename_platform}.mozinfo.json
   target.reftest.tests.tar.gz:
     <<: *default
+    description: "Results for running the reftest testing framework via display of two Web pages comparison"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.reftest.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.reftest.tests.tar.gz
   target.talos.tests.tar.gz:
     <<: *default
+    description: "Results for running the talos testing framework to measure performance"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.talos.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.talos.tests.tar.gz
   target.awsy.tests.tar.gz:
     <<: *default
+    description: "Results for running the awsy testing framework to track memory usage"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.awsy.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.awsy.tests.tar.gz
   target.test_packages.json:
     <<: *default
+    description: "File containing metadata about all other files and testing harnesses specifics"
     all_locales: true
     pretty_name: fennec-${version}.${locale}.${filename_platform}.test_packages.json
     checksums_path: fennec-${version}.${locale}.${filename_platform}.test_packages.json
   target.txt:
     <<: *default
+    description: "File containing buildid and revision"
     all_locales: true
     pretty_name: fennec-${version}.${locale}.${filename_platform}.txt
     checksums_path: fennec-${version}.${locale}.${filename_platform}.txt
   target.web-platform.tests.tar.gz:
     <<: *default
-    description: "Web platform test suite <TODO>"
+    description: "Results for running the webplatform testing framework to cover standard Web platform features"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.web-platform.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.web-platform.tests.tar.gz
   target.xpcshell.tests.tar.gz:
     <<: *default
-    description: "XPCShell test suite <TODO>"
+    description: "Results for running the xpcshell testing framework to enable XPConnect console application"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.xpcshell.tests.tar.gz
     checksums_path: fennec-${version}.${locale}.${filename_platform}.xpcshell.tests.tar.gz
   target_info.txt:
     <<: *default
     all_locales: true
-    description: "File containing the buildID for the particular release"
+    description: "File containing the buildID"
     pretty_name: fennec-${version}.${locale}.${filename_platform}_info.txt
     checksums_path: fennec-${version}.${locale}.${filename_platform}_info.txt
   mozharness.zip:
     <<: *default
+    description: "File containing the mozharness set of scripts and configuration used by various automation tools"
     pretty_name: mozharness.zip
     checksums_path: mozharness.zip
   robocop.apk:
     <<: *default
+    description: "APK to enable the Robocop testing framework "
     all_locales: true
     pretty_name: robocop.apk
     checksums_path: robocop.apk
   target.jsshell.zip:
     <<: *default
+    description: "Set of shells to allow test snippets of Javascript code without needing to reload the page"
     pretty_name: jsshell-${filename_platform}.zip
     checksums_path: jsshell-${filename_platform}.zip
   target.apk:
     <<: *default
+    description: "The main installer we ship our mobile products baked within"
     all_locales: true
     from:
       - build-signing
       - nightly-l10n-signing
     pretty_name: fennec-${version}.${locale}.${filename_platform}.apk
     checksums_path: fennec-${version}.${locale}.${filename_platform}.apk
     update_balrog_manifest:
       by-locale:
--- a/taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
+++ b/taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
@@ -1,13 +1,9 @@
 ---
-metadata:
-  name: "Beetmover for checksums artifacts"
-  description: "Uploads checksum files to s3 buckets"
-  owner: "release@mozilla.com"
 s3_bucket_paths:
   - pub/mobile/nightly
 default_locales:  # if given an empty locale, use these locales
   - en-US
 tasktype_map:  # Map task reference to task type.
   checksums-signing: signing
 platform_names:
   path_platform:
@@ -47,14 +43,16 @@ default: &default
       default:
         - latest-${branch}-${path_platform}-l10n
         - ${year}/${month}/${upload_date}-${branch}-${path_platform}-l10n
 
 # Configuration for individual files. Extends 'default', above.
 mapping:
   target.checksums:
     <<: *default
+    description: "Checksums file containing size, hash, sha algorithm and filename"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.checksums
     checksums_path: fennec-${version}.${locale}.${filename_platform}.checksums
   target.checksums.asc:
     <<: *default
+    description: "Detached signature for the checksums file"
     pretty_name: fennec-${version}.${locale}.${filename_platform}.checksums.asc
     checksums_path: fennec-${version}.${locale}.${filename_platform}.checksums.asc
--- a/taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
+++ b/taskcluster/taskgraph/manifests/firefox_nightly_checksums.yml
@@ -1,13 +1,9 @@
 ---
-metadata:
-  name: "Beetmover for checksums artifacts"
-  description: "Uploads checksum files to s3 buckets"
-  owner: "release@mozilla.com"
 s3_bucket_paths:
   by-platform:
     .*devedition.*:
       - pub/devedition/nightly
     default:
       - pub/firefox/nightly
 default_locales:  # if given an empty locale, use these locales
   - en-US
@@ -42,14 +38,16 @@ default: &default
       default:
         - latest-${branch}-l10n
         - ${year}/${month}/${upload_date}-${branch}-l10n
 
 # Configuration for individual files. Extends 'default', above.
 mapping:
   target.checksums:
     <<: *default
+    description: "Checksums file containing size, hash, sha algorithm and filename"
     pretty_name: firefox-${version}.${locale}.${filename_platform}.checksums
     checksums_path: firefox-${version}.${locale}.${filename_platform}.checksums
   target.checksums.asc:
     <<: *default
+    description: "Detached signature for the checksums file"
     pretty_name: firefox-${version}.${locale}.${filename_platform}.checksums.asc
     checksums_path: firefox-${version}.${locale}.${filename_platform}.checksums.asc
--- a/taskcluster/taskgraph/manifests/release_checksums.yml
+++ b/taskcluster/taskgraph/manifests/release_checksums.yml
@@ -1,26 +1,22 @@
 ---
-metadata:
-  name: "Beetmover for checksums artifacts"
-  description: "Uploads checksum files to s3 buckets"
-  owner: "release@mozilla.com"
 s3_bucket_paths:
   by-platform:
     fennec-release:
       - pub/mobile/candidates
     devedition-release:
       - pub/devedition/candidates
     firefox-release:
       - pub/firefox/candidates
 default_locales:  # if given an empty locale, use these locales
   - en-US
 tasktype_map:  # Map task reference to task type.
+  release-generate-checksums: build
   release-generate-checksums-signing: signing
-  release-generate-checksums: build
 platform_names:
   path_platform: ''
   filename_platform: ''
 
 # A default entry, which the mappings below extend and override.
 # Final 'destinations' will be the product of:
 # s3_bucket_paths + destinations + locale_prefix + pretty_name
 default: &default
@@ -32,38 +28,45 @@ default: &default
   source_path_modifier: ''
   destinations:  # locale_prefix is appended
     - ${version}-candidates/build${build_number}
 
 # Configuration for individual files. Extends 'default', above.
 mapping:
   SHA256SUMMARY:
     <<: *default
+    description: "Merkle-tree for the release artifacts with sha 256 hashes"
     from:
       - release-generate-checksums
     pretty_name: SHA256SUMMARY
     checksums_path: SHA256SUMMARY
   SHA512SUMMARY:
     <<: *default
+    description: "Merkle-tree for the release artifacts with sha 512 hashes"
     from:
       - release-generate-checksums
     pretty_name: SHA512SUMMARY
     checksums_path: SHA512SUMMARY
   KEY:
     <<: *default
+    description: "Public side of the key that was used to sign the release artifacts"
     pretty_name: KEY
     checksums_path: KEY
   SHA256SUMS:
     <<: *default
+    description: "Aggregated checksums with main installers details per platform in sha512 hashes"
     pretty_name: SHA256SUMS
     checksums_path: SHA256SUMS
   SHA256SUMS.asc:
     <<: *default
+    description: "Detached signature for the checksums file"
     pretty_name: SHA256SUMS.asc
     checksums_path: SHA256SUMS.asc
   SHA512SUMS:
     <<: *default
+    description: "Aggregated checksums with main installers details per platform in sha256 hashes"
     pretty_name: SHA512SUMS
     checksums_path: SHA512SUMS
   SHA512SUMS.asc:
     <<: *default
+    description: "Detached signature for the checksums file"
     pretty_name: SHA512SUMS.asc
     checksums_path: SHA512SUMS.asc
--- a/taskcluster/taskgraph/manifests/source_checksums.yml
+++ b/taskcluster/taskgraph/manifests/source_checksums.yml
@@ -1,13 +1,9 @@
 ---
-metadata:
-  description: Source file archives
-  name: Beetmover source archive manifest
-  owner: release@mozilla.com
 s3_bucket_paths:
   by-platform:
     fennec-source:
       - pub/mobile/candidates
     devedition-source:
       - pub/devedition/candidates
     firefox-source:
       - pub/firefox/candidates
@@ -31,20 +27,32 @@ default: &default
   source_path_modifier: ''
   destinations:  # locale_prefix is appended
     - ${version}-candidates/build${build_number}/beetmover-checksums/source
 
 # Configuration for individual files. Extends 'default', above.
 mapping:
   target-source.checksums:
     <<: *default
+    description: "Checksums file for the source zip files"
     pretty_name:
       by-platform:
         firefox-source: firefox-${version}.checksums.beet
         devedition-source: firefox-${version}.checksums.beet
         fennec-source: fennec-${version}.checksums.beet
+    checksums_path:
+      by-platform:
+        firefox-source: firefox-${version}.checksums.beet
+        devedition-source: firefox-${version}.checksums.beet
+        fennec-source: fennec-${version}.checksums.beet
   target-source.checksums.asc:
     <<: *default
+    description: "Detached signature for the checksums file"
     pretty_name:
       by-platform:
         firefox-source: firefox-${version}.checksums.asc
         devedition-source: firefox-${version}.checksums.asc
         fennec-source: fennec-${version}.checksums.asc
+    checksums_path:
+      by-platform:
+        firefox-source: firefox-${version}.checksums.asc
+        devedition-source: firefox-${version}.checksums.asc
+        fennec-source: fennec-${version}.checksums.asc
--- a/taskcluster/taskgraph/manifests/source_files.yml
+++ b/taskcluster/taskgraph/manifests/source_files.yml
@@ -1,13 +1,9 @@
 ---
-metadata:
-  description: Source file archives
-  name: Beetmover source archive manifest
-  owner: release@mozilla.com
 s3_bucket_paths:
   by-platform:
     fennec-source:
       - pub/mobile/candidates
     devedition-source:
       - pub/devedition/candidates
     firefox-source:
       - pub/firefox/candidates
@@ -31,30 +27,32 @@ default: &default
   source_path_modifier: ''
   destinations:  # locale_prefix is appended
     - ${version}-candidates/build${build_number}/source
 
 # Configuration for individual files. Extends 'default', above.
 mapping:
   source.tar.xz:
     <<: *default
+    description: "Source file with the in-tree code archived"
     pretty_name:
       by-platform:
         firefox-source: firefox-${version}.source.tar.xz
         devedition-source: firefox-${version}.source.tar.xz
         fennec-source: fennec-${version}.source.tar.xz
     checksums_path:
       by-platform:
-        firefox-source: firefox-${version}.source.tar.xz
-        devedition-source: firefox-${version}.source.tar.xz
-        fennec-source: fennec-${version}.source.tar.xz
+        firefox-source: source/firefox-${version}.source.tar.xz
+        devedition-source: source/firefox-${version}.source.tar.xz
+        fennec-source: source/fennec-${version}.source.tar.xz
   source.tar.xz.asc:
     <<: *default
+    description: "Detached signature for the source file"
     pretty_name:
       by-platform:
         firefox-source: firefox-${version}.source.tar.xz.asc
         devedition-source: firefox-${version}.source.tar.xz.asc
         fennec-source: fennec-${version}.source.tar.xz.asc
     checksums_path:
       by-platform:
-        firefox-source: firefox-${version}.source.tar.xz.asc
-        devedition-source: firefox-${version}.source.tar.xz.asc
-        fennec-source: fennec-${version}.source.tar.xz.asc
+        firefox-source: source/firefox-${version}.source.tar.xz.asc
+        devedition-source: source/firefox-${version}.source.tar.xz.asc
+        fennec-source: source/fennec-${version}.source.tar.xz.asc
--- a/taskcluster/taskgraph/transforms/beetmover.py
+++ b/taskcluster/taskgraph/transforms/beetmover.py
@@ -307,17 +307,17 @@ def make_task_worker(config, jobs):
             else:
                 build_task = dependency
 
         signing_task_ref = "<" + str(signing_task) + ">"
         build_task_ref = "<" + str(build_task) + ">"
 
         if should_use_artifact_map(platform, config.params['project']):
             upstream_artifacts = generate_beetmover_upstream_artifacts(
-                job, platform, locale
+                config, job, platform, locale
             )
         else:
             upstream_artifacts = generate_upstream_artifacts(
                 job, signing_task_ref, build_task_ref, platform, locale
             )
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
--- a/taskcluster/taskgraph/transforms/beetmover_checksums.py
+++ b/taskcluster/taskgraph/transforms/beetmover_checksums.py
@@ -142,17 +142,17 @@ def make_beetmover_checksums_worker(conf
 
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
         }
 
         if should_use_artifact_map(platform, config.params['project']):
             upstream_artifacts = generate_beetmover_upstream_artifacts(
-                job, platform, locale
+                config, job, platform, locale
             )
             worker['artifact-map'] = generate_beetmover_artifact_map(
                 config, job, platform=platform, locale=locale)
         else:
             upstream_artifacts = generate_upstream_artifacts(
                 refs, platform, locale
             )
             # Clean up un-used artifact map, to avoid confusion
--- a/taskcluster/taskgraph/transforms/beetmover_source_checksums.py
+++ b/taskcluster/taskgraph/transforms/beetmover_source_checksums.py
@@ -133,17 +133,18 @@ def make_beetmover_checksums_worker(conf
                 refs['beetmover'] = "<{}>".format(dependency)
             else:
                 refs['signing'] = "<{}>".format(dependency)
         if None in refs.values():
             raise NotImplementedError(
                 "Beetmover checksums must have a beetmover and signing dependency!")
 
         if should_use_artifact_map(platform, config.params['project']):
-            upstream_artifacts = generate_beetmover_upstream_artifacts(job, platform, locale)
+            upstream_artifacts = generate_beetmover_upstream_artifacts(config,
+                                                                       job, platform, locale)
         else:
             upstream_artifacts = generate_upstream_artifacts(refs, platform, locale)
 
         worker = {
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
             'upstream-artifacts': upstream_artifacts,
         }
--- a/taskcluster/taskgraph/transforms/release_generate_checksums_beetmover.py
+++ b/taskcluster/taskgraph/transforms/release_generate_checksums_beetmover.py
@@ -153,17 +153,17 @@ def make_task_worker(config, jobs):
             'implementation': 'beetmover',
             'release-properties': craft_release_properties(config, job),
         }
 
         platform = job["attributes"]["build_platform"]
         # Works with Firefox/Devedition. Commented for migration.
         if should_use_artifact_map(platform, config.params['project']):
             upstream_artifacts = generate_beetmover_upstream_artifacts(
-                job, platform=None, locale=None
+                config, job, platform=None, locale=None
             )
         else:
             upstream_artifacts = generate_upstream_artifacts(
                 job, signing_task_ref, build_task_ref
             )
 
         worker['upstream-artifacts'] = upstream_artifacts
 
--- a/taskcluster/taskgraph/transforms/release_generate_checksums_signing.py
+++ b/taskcluster/taskgraph/transforms/release_generate_checksums_signing.py
@@ -46,21 +46,21 @@ def make_release_generate_checksums_sign
         treeherder.setdefault('tier', 1)
         treeherder.setdefault('kind', 'build')
 
         job_template = "{}-{}".format(dep_job.label, "signing")
         label = job.get("label", job_template)
         description = "Signing of the overall release-related checksums"
 
         dependencies = {
-            "build": dep_job.label
+            str(dep_job.kind): dep_job.label
         }
 
         upstream_artifacts = [{
-            "taskId": {"task-reference": "<build>"},
+            "taskId": {"task-reference": "<{}>".format(str(dep_job.kind))},
             "taskType": "build",
             "paths": [
                 get_artifact_path(dep_job, "SHA256SUMS"),
                 get_artifact_path(dep_job, "SHA512SUMS"),
             ],
             "formats": ["gpg"]
         }]
 
--- a/taskcluster/taskgraph/util/scriptworker.py
+++ b/taskcluster/taskgraph/util/scriptworker.py
@@ -396,32 +396,37 @@ def get_worker_type_for_scope(config, sc
                 for scopes in config.graph_config['scriptworker']['worker-types'].values()
                 for scope in scopes
             ),
         )
     )
 
 
 # generate_beetmover_upstream_artifacts {{{1
-def generate_beetmover_upstream_artifacts(job, platform, locale=None, dependencies=None):
+def generate_beetmover_upstream_artifacts(config, job, platform, locale=None, dependencies=None):
     """Generate the upstream artifacts for beetmover, using the artifact map.
 
     Currently only applies to beetmover tasks.
 
     Args:
         job (dict): The current job being generated
         dependencies (list): A list of the job's dependency labels.
         platform (str): The current build platform
         locale (str): The current locale being beetmoved.
 
     Returns:
         list: A list of dictionaries conforming to the upstream_artifacts spec.
     """
     base_artifact_prefix = get_artifact_prefix(job)
-    resolve_keyed_by(job, 'attributes.artifact_map', 'artifact map', platform=platform)
+    resolve_keyed_by(
+        job, 'attributes.artifact_map',
+        'artifact map',
+        project=config.params['project'],
+        platform=platform
+    )
     map_config = load_yaml(job['attributes']['artifact_map'])
     upstream_artifacts = list()
 
     if not locale:
         locales = map_config['default_locales']
     else:
         locales = [locale]
 
@@ -526,17 +531,22 @@ def generate_beetmover_artifact_map(conf
         platform (str): The current build platform
         locale (str): The current locale being beetmoved.
 
     Returns:
         list: A list of dictionaries containing source->destination
             maps for beetmover.
     """
     platform = kwargs.get('platform', '')
-    resolve_keyed_by(job, 'attributes.artifact_map', 'artifact map', platform=platform)
+    resolve_keyed_by(
+        job, 'attributes.artifact_map',
+        'artifact map',
+        project=config.params['project'],
+        platform=platform
+    )
     map_config = load_yaml(job['attributes']['artifact_map'])
     base_artifact_prefix = map_config.get('base_artifact_prefix', get_artifact_prefix(job))
 
     artifacts = list()
 
     dependencies = job['dependencies'].keys()
 
     if kwargs.get('locale'):
@@ -552,18 +562,16 @@ def generate_beetmover_artifact_map(conf
             # Relevancy checks
             if dep not in map_config['mapping'][filename]['from']:
                 # We don't get this file from this dependency.
                 continue
             if locale != 'en-US' and not map_config['mapping'][filename]['all_locales']:
                 # This locale either doesn't produce or shouldn't upload this file.
                 continue
 
-            # Filling in destinations
-
             # deepcopy because the next time we look at this file the locale will differ.
             file_config = deepcopy(map_config['mapping'][filename])
 
             for field in [
                 'destinations',
                 'locale_prefix',
                 'source_path_modifier',
                 'update_balrog_manifest',
@@ -606,27 +614,26 @@ def generate_beetmover_artifact_map(conf
                 if file_config.get('balrog_format'):
                     paths[key]['balrog_format'] = file_config['balrog_format']
 
         if not paths:
             # No files for this dependency/locale combination.
             continue
 
         # Render all variables for the artifact map
-
         platforms = deepcopy(map_config['platform_names'])
         if platform:
             for key in platforms.keys():
                 resolve_keyed_by(platforms, key, key, platform=platform)
 
         upload_date = datetime.fromtimestamp(config.params['build_date'])
 
         kwargs.update({
             'locale': locale,
-            'version': config.params['app_version'],
+            'version': config.params['version'],
             'branch': config.params['project'],
             'build_number': config.params['build_number'],
             'filename_platform': platforms['filename_platform'],
             'path_platform': platforms['path_platform'],
             'year': upload_date.year,
             'month': upload_date.strftime("%m"),  # zero-pad the month
             'upload_date': upload_date.strftime("%Y-%m-%d-%H-%M-%S")
         })
@@ -645,13 +652,13 @@ def should_use_artifact_map(platform, pr
     """Return True if this task uses the beetmover artifact map.
 
     This function exists solely for the beetmover artifact map
     migration.
     """
     platforms = ['android', 'fennec']
     # FIXME: once we're ready to switch fully to declarative artifacts on other
     # branches, we can expand this
-    projects = ['mozilla-central']
+    projects = ['mozilla-central', 'mozilla-beta', 'mozilla-release']
 
     if any([pl in platform for pl in platforms]) and any([pj in project for pj in projects]):
         return True
     return False