Bug 1551738: Add update tests for update testing from the previous ESR release; r=bhearsum
authorTom Prince <mozilla@hocat.ca>
Mon, 20 May 2019 01:23:39 +0000
changeset 474470 690e9a5889c41c44d213ce7b275c71c0ec67f935
parent 474469 1796e3525261785f0215e3247fd82cf5ef1ee298
child 474471 e3d25aeb90a855b036e95bdf7f3fe9101822a46f
push id36040
push userrgurzau@mozilla.com
push dateMon, 20 May 2019 13:43:21 +0000
treeherdermozilla-central@319a369ccde4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbhearsum
bugs1551738
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1551738: Add update tests for update testing from the previous ESR release; r=bhearsum This adds a new set of update tasks and channels for testing updates from the previous ESR release, before we make the new release generally available as an update. Differential Revision: https://phabricator.services.mozilla.com/D31654
taskcluster/ci/release-balrog-submit-toplevel/kind.yml
taskcluster/ci/release-update-verify-config-next/kind.yml
taskcluster/ci/release-update-verify-next/kind.yml
taskcluster/docs/kinds.rst
taskcluster/taskgraph/transforms/update_verify.py
taskcluster/taskgraph/transforms/update_verify_config.py
--- a/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
+++ b/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
@@ -34,17 +34,17 @@ jobs:
         description: Submit toplevel Firefox release to balrog
         shipping-product: firefox
         worker:
             product: firefox
             channel-names:
                 by-release-type:
                     beta: ["beta", "beta-localtest", "beta-cdntest"]
                     release(-rc)?: ["release", "release-localtest", "release-cdntest"]
-                    esr.*: ["esr", "esr-localtest", "esr-cdntest"]
+                    esr.*: ["esr", "esr-localtest", "esr-cdntest", "esr-localtest-next", "esr-cdntest-next"]
                     default: []
             rules-to-update:
                 by-release-type:
                     beta: ["firefox-beta-cdntest", "firefox-beta-localtest"]
                     release(-rc)?: ["firefox-release-cdntest", "firefox-release-localtest"]
                     esr68: ["firefox-esr68-cdntest", "firefox-esr68-localtest"]
                     esr60: ["firefox-esr60-cdntest", "firefox-esr60-localtest"]
                     default: []
@@ -57,18 +57,21 @@ jobs:
 
     firefox-bz2:
         name: submit-toplevel-firefox-release-to-balrog-bz2
         description: Submit toplevel Firefox release to balrog
         shipping-product: firefox
         run-on-releases: [esr60, esr68]
         worker:
             product: firefox
-            channel-names: ["esr", "esr-localtest", "esr-cdntest"]
-            rules-to-update: ["esr52-cdntest", "esr52-localtest"]
+            channel-names: ["esr", "esr-localtest", "esr-cdntest", "esr-localtest-next", "esr-cdntest-next"]
+            rules-to-update:
+                by-release-type:
+                    esr68: ["esr52-cdntest-next", "esr52-localtest-next"]
+                    esr60: ["esr52-cdntest", "esr52-localtest"]
             platforms: ["linux", "linux64", "macosx64", "win32", "win64"]
             blob-suffix: -bz2
             complete-mar-filename-pattern: '%s-%s.bz2.complete.mar'
             complete-mar-bouncer-product-pattern: '%s-%s-complete-bz2'
         treeherder:
             platform: firefox-release/opt
             symbol: Rel(BPFx-bz2)
             tier: 1
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/release-update-verify-config-next/kind.yml
@@ -0,0 +1,98 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+---
+loader: taskgraph.loader.transform:loader
+
+transforms:
+    - taskgraph.transforms.release:run_on_releases
+    - taskgraph.transforms.update_verify_config:transforms
+    - taskgraph.transforms.job:transforms
+    - taskgraph.transforms.task:transforms
+
+job-defaults:
+    name: update-verify-config-next
+    run-on-projects: []  # to make sure this never runs as part of CI
+    run-on-releases: [esr68]
+    shipping-phase: promote
+    worker-type: b-linux
+    worker:
+        docker-image:
+            in-tree: "update-verify"
+        max-run-time: 3600
+        artifacts:
+            - name: public/build/update-verify.cfg
+              path: /builds/worker/checkouts/gecko/update-verify.cfg
+              type: file
+    run:
+        sparse-profile: mozharness
+    treeherder:
+        symbol: UVCnext
+        kind: test
+        tier: 1
+    extra:
+        app-name: browser
+        branch-prefix: mozilla
+        archive-prefix:
+            by-release-level:
+                staging: "http://ftp.stage.mozaws.net/pub"
+                production: "https://archive.mozilla.org/pub"
+        previous-archive-prefix:
+            by-release-level:
+                staging: "https://archive.mozilla.org/pub"
+                production: null
+        aus-server:
+            by-release-level:
+                staging: "https://stage.balrog.nonprod.cloudops.mozgcp.net"
+                production: "https://aus5.mozilla.org"
+        override-certs:
+            by-release-level:
+                staging: dep
+                production: null
+        updater-platform: linux-x86_64
+        product: firefox
+        channel: "esr-localtest-next"
+        include-version: esr68-next
+        last-watershed: "52.0esr"
+
+jobs:
+    firefox-next-linux:
+        shipping-product: firefox
+        treeherder:
+            platform: linux32-shippable/opt
+        attributes:
+            build_platform: linux-shippable
+        extra:
+            platform: linux-i686
+    firefox-next-linux64:
+        shipping-product: firefox
+        treeherder:
+            platform: linux64-shippable/opt
+        attributes:
+            build_platform: linux64-shippable
+        extra:
+            platform: linux-x86_64
+    firefox-next-macosx64:
+        shipping-product: firefox
+        treeherder:
+            platform: osx-shippable/opt
+        attributes:
+            build_platform: macosx64-shippable
+        extra:
+            platform: mac
+    firefox-next-win32:
+        shipping-product: firefox
+        treeherder:
+            platform: windows2012-32-shippable/opt
+        attributes:
+            build_platform: win32-shippable
+        extra:
+            platform: win32
+    firefox-next-win64:
+        shipping-product: firefox
+        treeherder:
+            platform: windows2012-64-shippable/opt
+        attributes:
+            build_platform: win64-shippable
+        extra:
+            platform: win64
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/release-update-verify-next/kind.yml
@@ -0,0 +1,73 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+---
+loader: taskgraph.loader.transform:loader
+
+kind-dependencies:
+    - post-balrog-dummy
+    - post-beetmover-dummy
+    - release-balrog-submit-toplevel
+    - release-update-verify-config-next
+
+transforms:
+    - taskgraph.transforms.release:run_on_releases
+    - taskgraph.transforms.release_deps:transforms
+    - taskgraph.transforms.update_verify:transforms
+    - taskgraph.transforms.job:transforms
+    - taskgraph.transforms.task:transforms
+
+job-defaults:
+    name: update-verify-next
+    run-on-projects: []  # to make sure this never runs as part of CI
+    run-on-releases: [esr68]
+    shipping-phase: promote
+    worker-type: b-linux
+    worker:
+        artifacts:
+            - name: 'public/build/diff-summary.log'
+              path: '/builds/worker/tools/release/updates/diff-summary.log'
+              type: file
+        docker-image:
+            in-tree: "update-verify"
+        max-run-time: 7200
+        retry-exit-status:
+            - 255
+        env:
+            CHANNEL: "esr-localtest-next"
+    treeherder:
+        symbol: UV(UVnext)
+        kind: test
+    extra:
+        chunks: 12
+
+jobs:
+    firefox-next-linux64:
+        description: linux64 esr-next update verify
+        shipping-product: firefox
+        attributes:
+            build_platform: linux64-shippable
+
+    firefox-next-linux:
+        description: linux esr-next update verify
+        shipping-product: firefox
+        attributes:
+            build_platform: linux-shippable
+
+    firefox-next-win64:
+        description: win64 esr-next update verify
+        shipping-product: firefox
+        attributes:
+            build_platform: win64-shippable
+
+    firefox-next-win32:
+        description: win32 esr-next update verify
+        shipping-product: firefox
+        attributes:
+            build_platform: win32-shippable
+
+    firefox-next-macosx64:
+        description: macosx64 esr-next update verify
+        shipping-product: firefox
+        attributes:
+            build_platform: macosx64-shippable
--- a/taskcluster/docs/kinds.rst
+++ b/taskcluster/docs/kinds.rst
@@ -362,29 +362,36 @@ Publishes signed langpacks to archive.mo
 
 release-beetmover-signed-langpacks-checksums
 --------------------------------------------
 Publishes signed langpacks to archive.mozilla.org
 
 release-update-verify
 ---------------------
 Verifies the contents and package of release update MARs.
-
 release-secondary-update-verify
 -------------------------------
 Verifies the contents and package of release update MARs.
 
+release-update-verify-next
+--------------------------
+Verifies the contents and package of release and updare MARs from the previous ESR release.
+
 release-update-verify-config
 ----------------------------
 Creates configs for release-update-verify tasks
 
 release-secondary-update-verify-config
 --------------------------------------
 Creates configs for release-secondary-update-verify tasks
 
+release-update-verify-config-next
+---------------------------------
+Creates configs for release-update-verify-next tasks
+
 release-updates-builder
 -----------------------
 Top level Balrog blob submission & patcher/update verify config updates.
 
 release-version-bump
 --------------------
 Bumps to the next version.
 
--- a/taskcluster/taskgraph/transforms/update_verify.py
+++ b/taskcluster/taskgraph/transforms/update_verify.py
@@ -14,17 +14,17 @@ from taskgraph.util.treeherder import ad
 
 transforms = TransformSequence()
 
 
 @transforms.add
 def add_command(config, tasks):
     config_tasks = {}
     for dep in config.kind_dependencies_tasks:
-        if 'update-verify-config' in dep.kind:
+        if 'update-verify-config' in dep.kind or 'update-verify-next-config' in dep.kind:
             config_tasks[dep.name] = dep
 
     for task in tasks:
         config_task = config_tasks[task['name']]
         total_chunks = task["extra"]["chunks"]
         task['worker'].setdefault('env', {}).update(
             CHANNEL=config_task.task['extra']['channel'],
         )
--- a/taskcluster/taskgraph/transforms/update_verify_config.py
+++ b/taskcluster/taskgraph/transforms/update_verify_config.py
@@ -28,16 +28,18 @@ transforms = TransformSequence()
 INCLUDE_VERSION_REGEXES = {
     "beta": r"'^(\d+\.\d+(b\d+)?)$'",
     "nonbeta": r"'^\d+\.\d+(\.\d+)?$'",
     # Same as beta, except excludes 58.0b1 due to issues with it not being able
     # to update to latest
     "devedition_hack": r"'^((?!58\.0b1$)\d+\.\d+(b\d+)?)$'",
     # Same as nonbeta, except for the esr suffix
     "esr": r"'^\d+\.\d+(\.\d+)?esr$'",
+    # Previous esr versions, for update testing before we update users to esr68
+    "esr68-next": r"'^(52|60)+\.\d+(\.\d+)?esr$'",
 }
 
 MAR_CHANNEL_ID_OVERRIDE_REGEXES = {
     "beta": r"'^\d+\.\d+(\.\d+)?$$,firefox-mozilla-beta,firefox-mozilla-release'",
 }
 
 
 @transforms.add