def setUp(self):
     self.task_schema = Schema({
         'task': {
             'provisionerId': 'buildbot-bridge',
             'workerType': 'buildbot-bridge',
             'payload': {
                 'properties': {
                     'CHANNEL': 'beta-cdntest'
                 }
             }
         }
     }, extra=True, required=True)
     test_args = create_firefox_test_args({
         'updates_enabled': True,
         'push_to_candidates_enabled': True,
         'push_to_releases_enabled': True,
         'update_verify_enabled': True,
         'updates_builder_enabled': True,
         'signing_pvt_key': PVT_KEY_FILE,
         'branch': 'beta',
         'release_channels': ['beta'],
         'final_verify_channels': ['beta'],
         'l10n_config': L10N_CONFIG,
         'en_US_config': EN_US_CONFIG,
         'uptake_monitoring_enabled': True,
         'accepted_mar_channel_id': 'firefox-mozilla-beta',
         'signing_cert': 'dep',
         'moz_disable_mar_cert_verification': True,
         'update_verify_channel': 'beta-cdntest',
         'update_verify_requires_cdn_push': True,
     })
     self.graph = make_task_graph(**test_args)
     self.task = get_task_by_name(self.graph, "release-beta_firefox_win32_update_verify_beta_3")
예제 #2
0
 def setUp(self):
     self.task_schema = Schema({
         'task': {
             'provisionerId': 'buildbot-bridge',
             'workerType': 'buildbot-bridge',
             'payload': {
                 'properties': {
                     'CHANNEL': 'beta-cdntest'
                 }
             }
         }
     }, extra=True, required=True)
     test_args = create_firefox_test_args({
         'updates_enabled': True,
         'push_to_candidates_enabled': True,
         'push_to_releases_enabled': True,
         'update_verify_enabled': True,
         'updates_builder_enabled': True,
         'signing_pvt_key': PVT_KEY_FILE,
         'branch': 'beta',
         'release_channels': ['beta'],
         'final_verify_channels': ['beta'],
         'l10n_config': L10N_CONFIG,
         'en_US_config': EN_US_CONFIG,
         'uptake_monitoring_enabled': True,
         'accepted_mar_channel_id': 'firefox-mozilla-beta',
         'signing_cert': 'dep',
         'moz_disable_mar_cert_verification': True,
         'update_verify_channel': 'beta-cdntest',
         'update_verify_requires_cdn_push': True,
     })
     self.graph = make_task_graph(**test_args)
     self.task = get_task_by_name(self.graph, "release-beta_firefox_win32_update_verify_beta_3")
예제 #3
0
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'balrog_api_root': 'https://balrog.real/api',
                        'channels': 'alpha, release-dev',
                    }
                }
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'publish_to_balrog_channels': ["release-dev", "alpha"],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_publish_balrog")
예제 #4
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "project:releng:signing:format:gpg",
                "queue:define-task:buildbot-bridge/buildbot-bridge",
                "queue:create-task:buildbot-bridge/buildbot-bridge",
                "queue:task-priority:high"
            }),
            'tasks': None,
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "linux": {
                        "unsigned_task_id": "xyz", "signed_task_id": "xyx",
                        "ci_system": "tc"
                    },
                    "win32": {
                        "unsigned_task_id": "xyz", "signed_task_id": "xyx",
                        "repackage_task_id": "xyx",
                        "repackage-signing_task_id": "xyx", "ci_system": "tc"
                    },
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path:': 'mozilla/beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': EN_US_CONFIG,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
        })
        self.graph = make_task_graph(**test_kwargs)

        self.tasks = {
            'win32': get_task_by_name(
                self.graph, "release-{}_{}_{}_partial_en-US_{}build{}_beetmover_candidates".format(
                    "mozilla-beta", "firefox", 'win32', "38.0", 1
                )
            ),
            'macosx64': get_task_by_name(
                self.graph, "release-{}_{}_{}_partial_en-US_{}build{}_beetmover_candidates".format(
                    "mozilla-beta", "firefox", 'macosx64', "37.0", 2
                )
            ),
        }
예제 #6
0
    def test_encryption(self):
        self.task_schema = Schema({
            'task': {
                'payload': {
                    'encryptedEnv': All(Length(2), [Match(r'^wcB')])  # Must have 2 elements, starting with wcB
                }
            }
        }, required=True, extra=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'repo_path': 'foo/bar',
            'branch': 'mozilla-beta',
            'signing_class': 'dep-signing',
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'en_US_config': {
                "platforms": {
                    "macosx64": {"unsigned_task_id": "xyz", "signed_task_id": "xyz"},
                    "win32": {"unsigned_task_id": "xyz", "signed_task_id": "xyz"},
                }
            },
        })

        graph = make_task_graph(**test_kwargs)
        do_common_assertions(graph)
        for p in ("win32", "macosx64"):
            for v in ("38.0build1", "37.0build2"):
                balrog = get_task_by_name(graph, "{}_en-US_{}_funsize_balrog_task".format(p, v))
                verify(balrog, self.task_schema)
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path:': 'mozilla/beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': EN_US_CONFIG,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
        })
        self.graph = make_task_graph(**test_kwargs)

        self.tasks = {
            'win32': get_task_by_name(
                self.graph, "release-{}_{}_{}_partial_en-US_{}build{}_beetmover_candidates".format(
                    "mozilla-beta", "firefox", 'win32', "38.0", 1
                )
            ),
            'macosx64': get_task_by_name(
                self.graph, "release-{}_{}_{}_partial_en-US_{}build{}_beetmover_candidates".format(
                    "mozilla-beta", "firefox", 'macosx64', "37.0", 2
                )
            ),
        }
예제 #8
0
 def setUp(self):
     test_kwargs = create_firefox_test_args({
         'updates_enabled':
         True,
         'push_to_candidates_enabled':
         True,
         'update_verify_enabled':
         True,
         'branch':
         'beta',
         'release_channels': ["beta", "release"],
         'enUS_platforms':
         ["linux", "linux64", "win64", "win32", "macosx64"],
         'signing_pvt_key':
         PVT_KEY_FILE,
         'en_US_config':
         EN_US_CONFIG,
         'l10n_config':
         L10N_CONFIG,
         'accepted_mar_channel_id':
         'firefox-mozilla-beta',
         'signing_cert':
         'dep',
         'moz_disable_mar_cert_verification':
         True,
     })
     self.graph = make_task_graph(**test_kwargs)
예제 #9
0
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'workerType': 'gecko-3-b-linux',
                'provisionerId': 'aws-provisioner-v1',
                'extra': {
                    'l10n_changesets': 'ab cd\nef gh\nij kl\n',
                },
            },
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'source_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'release_channels': ['foo', 'bar'],
            'partner_repacks_platforms': ['win32', 'linux'],
            'eme_free_repacks_platforms': ['win32', 'macosx64'],
            'sha1_repacks_platforms': ['win32'],
            'l10n_changesets': {"ab": "cd", "ef": "gh", "ij": "kl"},
            'en_US_config': {
                "platforms": {
                    "linux": {
                        "unsigned_task_id": "xyz", "signed_task_id": "xyx",
                        "ci_system": "tc"
                    },
                    "win32": {
                        "unsigned_task_id": "xyz", "signed_task_id": "xyx",
                        "repackage_task_id": "xyx",
                        "repackage-signing_task_id": "xyx", "ci_system": "tc"
                    },
                },
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },

                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "foo_l10n_changeset")
예제 #10
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "queue:*",
                "docker-worker:*",
                "scheduler:*",
                "project:releng:signing:format:gpg",
                "project:releng:signing:format:mar",
                "project:releng:signing:cert:release-signing",
                "docker-worker:feature:balrogVPNProxy"
            })
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path': 'releases/mozilla-beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'en_US_config': {
                "platforms": {
                    "macosx64": {"unsigned_task_id": "xyz", "signed_task_id": "xyz"},
                    "win32": {"unsigned_task_id": "xyy", "signed_task_id": "xyy"},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.generator_image = get_task_by_name(self.graph, "funsize_update_generator_image")
        self.funsize_balrog_image = get_task_by_name(self.graph, "funsize_balrog_image")
예제 #11
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "docker-worker:image:taskcluster/builder:*",
                "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
                "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                "project:releng:signing:format:gpg",
                "project:releng:signing:cert:release-signing",
            })
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'scopes': generate_scope_validator(scopes={
                    "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                    "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
                    "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                    "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                }),
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
                'payload': {
                    'image': str,
                    'command': list,
                    'artifacts': dict,
                    'env': {
                        'VERSION': '42.0b2',
                    },
                }
            }
        }, extra=True, required=True)

        self.signing_task_schema = Schema({
            'task': {
                'scopes': generate_scope_validator(scopes={
                    "project:releng:signing:format:gpg",
                    "project:releng:signing:cert:release-signing",
                }),
                'provisionerId': 'signing-provisioner-v1',
                'workerType': 'signing-worker-v1',
                'payload': All(Length(1), {
                    'signingManifest': str,
                })
            }

        }, required=True, extra=True)

        test_kwargs = create_firefox_test_args({
            'snap_enabled': True,
            'en_US_config': EN_US_CONFIG,
            'signing_pvt_key': PVT_KEY_FILE,
        })

        self.graph = make_task_graph(**test_kwargs)

        self.task = get_task_by_name(self.graph, "foo_snap")
        self.signing_task = get_task_by_name(self.graph, "foo_snap_signing")
예제 #12
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(scopes={'queue:task-priority:high'}),
            },
            extra=True,
            required=True)

        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'NO_BBCONFIG': '1',
                            'VERIFY_CONFIG': 'beta-firefox-win32.cfg',
                            'TOTAL_CHUNKS': '12',
                            'THIS_CHUNK': '3'
                        }
                    }
                }
            },
            extra=True,
            required=True)

        # Ensure the task exists, and is a dict
        self.builder_exists_schema = Schema(dict)

        test_args = create_firefox_test_args({
            'updates_enabled':
            True,
            'push_to_candidates_enabled':
            True,
            'update_verify_enabled':
            True,
            'updates_builder_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'branch':
            'beta',
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'l10n_config':
            L10N_CONFIG,
            'en_US_config':
            EN_US_CONFIG,
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
        })
        self.graph = make_task_graph(**test_args)
        self.task = get_task_by_name(
            self.graph, "release-beta_firefox_win32_update_verify_beta_3")
예제 #13
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(scopes={
                    "queue:task-priority:high",
                })
            },
            extra=True,
            required=True)

        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'repo_path': 'releases/foo',
                            'script_repo_revision': 'abcd',
                            'partial_versions': '37.0build2, 38.0build1',
                            'balrog_api_root': 'https://balrog.real/api',
                            'platforms':
                            'linux, linux64, macosx64, win32, win64',
                            'channels': 'bar, foo',
                        }
                    }
                }
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled':
            True,
            'bouncer_enabled':
            True,
            'push_to_candidates_enabled':
            True,
            'postrelease_version_bump_enabled':
            True,
            'updates_builder_enabled':
            True,
            'release_channels': ['foo', 'bar'],
            'final_verify_channels': ['foo', 'beta'],
            'signing_pvt_key':
            PVT_KEY_FILE,
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'en_US_config':
            EN_US_CONFIG,
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_updates")
예제 #14
0
    def setUp(self):
        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'aws-provisioner-v1',
                    'workerType': 'gecko-3-b-linux',
                    'extra': {
                        'build_props': {
                            'product': 'firefox',
                            'locales': ["de", "en-GB", "zh-TW"],
                            'branch': 'mozilla-beta',
                            'version': '42.0b2',
                            'revision': 'abcdef123456',
                            'platform': str,
                        }
                    }
                }
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'branch':
            'mozilla-beta',
            'repo_path':
            'releases/mozilla-beta',
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'signing_pvt_key':
            PVT_KEY_FILE,
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'en_US_config':
            EN_US_CONFIG,
            'l10n_config':
            self.l10n_config,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.tasks = {
            'win32':
            get_task_by_name(
                self.graph,
                "release-{}_{}_{}_l10n_repack_beetmover_candidates_1".format(
                    "mozilla-beta", "firefox", 'win32')),
            'macosx64':
            get_task_by_name(
                self.graph,
                "release-{}_{}_{}_l10n_repack_beetmover_candidates_1".format(
                    "mozilla-beta", "firefox", 'macosx64')),
        }
예제 #15
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(
                    scopes={
                        "queue:*", "docker-worker:*", "scheduler:*",
                        "project:releng:signing:format:gpg",
                        "project:releng:signing:format:mar",
                        "project:releng:signing:cert:release-signing",
                        "docker-worker:feature:balrogVPNProxy"
                    })
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled':
            True,
            'branch':
            'mozilla-beta',
            'repo_path':
            'releases/mozilla-beta',
            'signing_pvt_key':
            PVT_KEY_FILE,
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyx",
                        "repackage_task_id": "xyx",
                        "repackage-signing_task_id": "xyy",
                        "ci_system": "bb"
                    },
                    "win32": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyx",
                        "repackage_task_id": "xyx",
                        "repackage-signing_task_id": "xyx",
                        "ci_system": "tc"
                    },
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.generator_image = get_task_by_name(
            self.graph, "funsize_update_generator_image")
        self.funsize_balrog_image = get_task_by_name(self.graph,
                                                     "funsize_balrog_image")
예제 #16
0
 def setUp(self):
     test_kwargs = create_firefox_test_args({
         'checksums_enabled':
         True,
         'updates_enabled':
         True,
         'push_to_candidates_enabled':
         True,
         'push_to_releases_enabled':
         True,
         'branch':
         'mozilla-beta',
         'repo_path':
         'releases/mozilla-beta',
         'signing_pvt_key':
         PVT_KEY_FILE,
         'accepted_mar_channel_id':
         'firefox-mozilla-beta',
         'signing_cert':
         'dep',
         'moz_disable_mar_cert_verification':
         True,
         'release_channels': ['beta', 'release'],
         'final_verify_channels': ['beta', 'release'],
         'partner_repacks_platforms': ['win32', 'macosx64'],
         'eme_free_repacks_platforms': ['win32', 'macosx64'],
         'sha1_repacks_platforms': ['win32'],
         'en_US_config':
         EN_US_CONFIG,
         'l10n_config':
         L10N_CONFIG,
         'partial_updates': {
             "38.0": {
                 "buildNumber": 1,
                 "locales": l10n_changesets.keys()
             },
             "38.0.1": {
                 "buildNumber": 1,
                 "locales": l10n_changesets.keys()
             },
             "37.0": {
                 "buildNumber": 1,
                 "locales": l10n_changesets.keys()
             },
             "36.0": {
                 "buildNumber": 1,
                 "locales": l10n_changesets.keys()
             },
             "35.0": {
                 "buildNumber": 1,
                 "locales": l10n_changesets.keys()
             },
         },
     })
     self.taskGroupId, self.toplevel_task_id, self.tasks = make_tasks(
         **test_kwargs)
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'workerType': 'gecko-3-b-linux',
                'provisionerId': 'aws-provisioner-v1',
                'extra': {
                    'l10n_changesets': 'ab cd\nef gh\nij kl\n',
                },
            },
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'source_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'release_channels': ['foo', 'bar'],
            'partner_repacks_platforms': ['win32', 'linux'],
            'eme_free_repacks_platforms': ['win32', 'macosx64'],
            'sha1_repacks_platforms': ['win32'],
            'l10n_changesets': {"ab": "cd", "ef": "gh", "ij": "kl"},
            'en_US_config': {
                "platforms": {
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                },
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },

                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "foo_l10n_changeset")
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(scopes={'queue:task-priority:high'})
            },
            extra=True,
            required=True)

        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'aws-provisioner-v1',
                    'workerType': 'b2gtest',
                    'payload': {
                        'image': Match(r'^rail/python-test-runner'),
                        'command': [str],
                        'env': dict,
                    }
                }
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_releases_enabled':
            True,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'final_verify_platforms':
            ["macosx64", "win32", "win64", "linux", "linux64"],
            'signing_pvt_key':
            PVT_KEY_FILE,
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'en_US_config':
            EN_US_CONFIG,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.tasks = [
            get_task_by_name(self.graph,
                             "{chan}_final_verify".format(chan=chan))
            for chan in (
                'beta',
                'release',
            )
        ]
 def setUp(self):
     self.notifications_schema = Schema({
         'task': {
             'extra': {
                 #  Notification section is either 'no notifications' or the below schema
                 'notifications': Any(
                     Schema({
                         Any(
                             'task-completed',
                             'task-exception',
                             'task-failed',
                         ): {
                                 'subject': str,
                                 'message': str,
                         }
                     }, extra=True, required=True),
                     'no notifications'
                 )
             }
         }
     }, required=True, extra=True)
     test_kwargs = create_firefox_test_args({
         'source_enabled': True,
         'updates_enabled': True,
         'bouncer_enabled': True,
         'checksums_enabled': True,
         'push_to_candidates_enabled': True,
         'push_to_releases_enabled': True,
         'push_to_releases_automatic': True,
         'postrelease_version_bump_enabled': True,
         'postrelease_mark_as_shipped_enabled': True,
         'postrelease_bouncer_aliases_enabled': True,
         'release_channels': ['foo'],
         'final_verify_channels': ['foo'],
         'signing_pvt_key': PVT_KEY_FILE,
         'accepted_mar_channel_id': 'firefox-mozilla-beta',
         'signing_cert': 'dep',
         'moz_disable_mar_cert_verification': True,
         'en_US_config': {
             "platforms": {
                 "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
             }
         },
     })
     self.graph = make_task_graph(**test_kwargs)
예제 #20
0
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'source_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': True,
            'release_channels': ['foo', 'bar'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': EN_US_CONFIG,
        })
        self.graph = make_task_graph(**test_kwargs)

        self.push_to_mirrors = get_task_by_name(self.graph, "release-foo_firefox_push_to_releases")
        self.foo_source_signing_beet = get_task_by_name(self.graph, "foo_source_signing_beet")
        self.foo_source_beet = get_task_by_name(self.graph, "foo_source_beet")
예제 #21
0
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'source_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': True,
            'release_channels': ['foo', 'bar'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': EN_US_CONFIG,
        })
        self.graph = make_task_graph(**test_kwargs)

        self.push_to_mirrors = get_task_by_name(self.graph, "release-foo_firefox_push_to_releases")
        self.foo_source_signing_beet = get_task_by_name(self.graph, "foo_source_signing_beet")
        self.foo_source_beet = get_task_by_name(self.graph, "foo_source_beet")
예제 #22
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "queue:task-priority:high",
            })
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                        'partial_versions': '37.0build2, 38.0build1',
                        'balrog_api_root': 'https://balrog.real/api',
                        'platforms': 'linux, linux64, macosx64, win32, win64',
                        'channels': 'bar, foo',
                    }
                }
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'bouncer_enabled': True,
            'push_to_candidates_enabled': True,
            'postrelease_version_bump_enabled': True,
            'updates_builder_enabled': True,
            'release_channels': ['foo', 'bar'],
            'final_verify_channels': ['foo', 'beta'],
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'en_US_config': {
                'platforms': {
                    'macosx64': {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    'win32': {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    'win64': {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    'linux': {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    'linux64': {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            }
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_updates")
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={'queue:task-priority:high'}),
        }, required=True, extra=True)

        self.human_task_schema = Schema({
            'task': {
                'provisionerId': 'null-provisioner',
                'workerType': 'human-decision',
            }
        }, required=True, extra=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'product': 'firefox',
                        'version': '42.0b2',
                        'build_number': 3,
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                        'revision': 'abcdef123456',
                        'tuxedo_server_url': 'https://bouncer.real.allizom.org/api',
                    }
                }
            }
        }, required=True, extra=True)

        test_kwargs = create_firefox_test_args({
            'postrelease_bouncer_aliases_enabled': True,
            'release_channels': ['foo'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)

        self.task = get_task_by_name(self.graph, "release-foo-firefox_bouncer_aliases")
        self.human_task = get_task_by_name(self.graph, "publish_release_human_decision")
 def setUp(self):
     test_kwargs = create_firefox_test_args({
         'updates_enabled': True,
         'push_to_candidates_enabled': True,
         'update_verify_enabled': True,
         'branch': 'beta',
         'release_channels': ["beta", "release"],
         'enUS_platforms': ["linux", "linux64", "win64", "win32", "macosx64"],
         'signing_pvt_key': PVT_KEY_FILE,
         'en_US_config': EN_US_CONFIG,
         'l10n_config': L10N_CONFIG,
         'accepted_mar_channel_id': 'firefox-mozilla-beta',
         'signing_cert': 'dep',
         'moz_disable_mar_cert_verification': True,
     })
     self.graph = make_task_graph(**test_kwargs)
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'uptake_monitoring_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'uptake_monitoring_platforms': ["macosx64", "win32", "win64", "linux", "linux64"],
            'partner_repacks_platforms': [],
            'eme_free_repacks_platforms': [],
            'sha1_repacks_platforms': ['win32'],
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux64": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },

                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_uptake_monitoring")
예제 #26
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "queue:task-priority:high",
            })
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'next_version': '42.0b3',
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                    }
                }
            }
        }, extra=True, required=True)

        self.human_task_schema = Schema({
            'task': {
                'provisionerId': 'null-provisioner',
                'workerType': 'human-decision',
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'bouncer_enabled': True,
            'postrelease_version_bump_enabled': True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_version_bump")
        self.human_task = get_task_by_name(self.graph, "publish_release_human_decision")
예제 #27
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "queue:task-priority:high",
                "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
            })
        }, required=True, extra=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
            }
        }, extra=True, required=True)

        self.human_task_schema = Schema({
            'task': {
                'provisionerId': 'null-provisioner',
                'workerType': 'human-decision',
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'checksums_enabled': True,
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path': 'releases/mozilla-beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'partner_repacks_platforms': ['win32', 'macosx64'],
            'eme_free_repacks_platforms': ['win32', 'macosx64'],
            'sha1_repacks_platforms': ['win32'],
            'en_US_config': EN_US_CONFIG,
            'l10n_config': L10N_CONFIG,
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(
            self.graph, "release-{}_{}_push_to_releases".format("mozilla-beta", "firefox")
        )
        self.human_task = get_task_by_name(self.graph, self.human_task_name)
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "queue:task-priority:high",
                "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
            })
        }, required=True, extra=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
            }
        }, extra=True, required=True)

        self.human_task_schema = Schema({
            'task': {
                'provisionerId': 'null-provisioner',
                'workerType': 'human-decision',
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'checksums_enabled': True,
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path': 'releases/mozilla-beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'partner_repacks_platforms': ['win32', 'macosx64'],
            'eme_free_repacks_platforms': ['win32', 'macosx64'],
            'sha1_repacks_platforms': ['win32'],
            'en_US_config': EN_US_CONFIG,
            'l10n_config': L10N_CONFIG,
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(
            self.graph, "release-{}_{}_push_to_releases".format("mozilla-beta", "firefox")
        )
        self.human_task = get_task_by_name(self.graph, self.human_task_name)
예제 #29
0
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-decision',
                'payload': {
                    'command': ['/bin/echo', 'Dummy task to tell pulse-notify to send an email'],
                },
                'metadata': {
                    'name': 'firefox email release-drivers foo-localtest',
                },
                'extra': {
                    'notifications': {
                        'task-completed': {
                            'subject': 'firefox foo 42.0b2 updates are available on the foo-localtest channel now <EOM>',
                            'message': 'firefox foo 42.0b2 updates are available on the foo-localtest channel now <EOM>',
                            'ids': ['release-drivers'],
                        },
                    },
                },
            },
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': False,
            'update_verify_enabled': True,
            'updates_builder_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'branch': 'foo',
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'l10n_config': L10N_CONFIG,
            'en_US_config': EN_US_CONFIG,
            'uptake_monitoring_enabled': True,
            'update_verify_channel': 'foo-cdntest',
            'update_verify_requires_cdn_push': True,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, 'release-foo-firefox_email_foo-localtest')
예제 #30
0
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-decision',
                'payload': {
                    'command': ['/bin/echo', 'Dummy task to tell pulse-notify to send an email'],
                },
                'metadata': {
                    'name': 'firefox email release-drivers foo',
                },
                'extra': {
                    'notifications': {
                        'task-completed': {
                            'subject': 'firefox foo 42.0b2 updates are available on the foo channel now <EOM>',
                            'message': 'firefox foo 42.0b2 updates are available on the foo channel now <EOM>',
                            'ids': ['release-drivers'],
                        },
                    },
                },
            },
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'publish_to_balrog_channels': ["release-dev", "alpha"],
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_email_foo")
예제 #31
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={"queue:task-priority:high"})
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                        'next_version': '42.0b3',
                    }
                }
            }
        }, extra=True, required=True)

        self.human_task_schema = Schema({
            'task': {
                'provisionerId': 'null-provisioner',
                'workerType': 'human-decision',
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'bouncer_enabled': True,
            'postrelease_mark_as_shipped_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'final_verify_channels': ['foo'],
            'release_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)

        self.task = get_task_by_name(self.graph, "release-foo-firefox_mark_as_shipped")
        self.human_task = get_task_by_name(self.graph, "publish_release_human_decision")
예제 #32
0
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'repo_path': 'releases/mozilla-beta',
            'branch': 'mozilla-beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'enUS_platforms': ["win32", "macosx64"],
            'final_verify_platforms': ["macosx64", "win32"],
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "macosx64": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },

                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "beta_final_verify")
예제 #33
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={'queue:task-priority:high'}),
        }, extra=True, required=True)

        self.test_schema = Schema({
            'task': {
                'provisionerId': 'scriptworker-prov-v1',
                'workerType': 'dummy-worker-transpar',
                'payload': {
                    'version': '42.0b2',
                    'chain': 'TRANSPARENCY.pem',
                    'contact': '*****@*****.**',
                    'maxRunTime': 600,
                    'stage-product': 'firefox',
                    'summary': 'https://archive.mozilla.org/pub/firefox/candidates/42.0b2-candidates/build3/SHA256SUMMARY',
                }
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'checksums_enabled': True,
            'binary_transparency_enabled': True,
            'updates_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc', 'repackage_task_id': 'xyx',
                                 'repackage-signing_task_id': 'xyx', 'ci_system': 'tc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc', 'repackage_task_id': 'xyx',
                              'repackage-signing_task_id': 'xyx', 'ci_system': 'tc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc', 'repackage_task_id': 'xyx',
                                'repackage-signing_task_id': 'xyx', 'ci_system': 'tc'},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)

        self.task = get_task_by_name(self.graph, "release-foo-firefox_binary_transparency")
예제 #34
0
    def setUp(self):
        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'build_number':
                            3,
                            'repo_path':
                            'releases/foo',
                            'script_repo_revision':
                            'abcd',
                            'partial_versions':
                            ', '.join([
                                '37.0build2',
                                '38.0build1',
                            ]),
                        }
                    }
                }
            },
            required=True,
            extra=True)

        test_kwargs = create_firefox_test_args({
            'bouncer_enabled': True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo_firefox_bncr_sub")
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
                'extra': {
                    'build_props': {
                        'product': 'firefox',
                        'locales': ["de", "en-GB", "zh-TW"],
                        'branch': 'mozilla-beta',
                        'version': '42.0b2',
                        'revision': 'abcdef123456',
                        'platform': str,
                    }
                }
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path': 'releases/mozilla-beta',
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'en_US_config': EN_US_CONFIG,
            'l10n_config': self.l10n_config,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.tasks = {
            'win32': get_task_by_name(
                self.graph, "release-{}_{}_{}_l10n_repack_beetmover_candidates_1".format("mozilla-beta",
                                                                                         "firefox",
                                                                                         'win32')
            ),
            'macosx64': get_task_by_name(
                self.graph, "release-{}_{}_{}_l10n_repack_beetmover_candidates_1".format("mozilla-beta",
                                                                                         "firefox",
                                                                                         'macosx64')
            ),
        }
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'scopes': list,
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'product': 'firefox',
                        'version': '42.0b2',
                        'build_number': 3,
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                        'revision': 'abcdef123456',
                        'tuxedo_server_url': 'https://bouncer.real.allizom.org/api',
                    }
                }
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'uptake_monitoring_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'uptake_monitoring_platforms': ["macosx64", "win32", "win64", "linux", "linux64"],
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_uptake_monitoring")
        self.payload = self.task["task"]["payload"]
 def setUp(self):
     test_args = create_firefox_test_args({
         'source_enabled': True,
         'checksums_enabled': True,
         'updates_enabled': True,
         'bouncer_enabled': True,
         'push_to_candidates_enabled': True,
         'push_to_releases_enabled': True,
         'uptake_monitoring_enabled': True,
         'postrelease_version_bump_enabled': True,
         'postrelease_mark_as_shipped_enabled': True,
         'postrelease_bouncer_aliases_enabled': True,
         'push_to_releases_automatic': True,
         'signing_pvt_key': PVT_KEY_FILE,
         'accepted_mar_channel_id': 'firefox-mozilla-beta',
         'signing_cert': 'dep',
         'moz_disable_mar_cert_verification': True,
         'publish_to_balrog_channels': ['foo'],
         'partner_repacks_platforms': [
             'win32',
             'macosx64',
         ],
         'eme_free_repacks_platforms': [
             'win32',
             'macosx64',
         ],
         'sha1_repacks_platforms': [
             'win32',
         ],
         'en_US_config': {
             "platforms": {
                 "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                 "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
             }
         },
         'release_channels': ['foo']
     })
     self.graph = make_task_graph(**test_args)
예제 #38
0
    def test_beta_is_excluded(self):
        test_kwargs = create_firefox_test_args({
            'updates_enabled':
            True,
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'push_to_releases_automatic':
            True,
            'update_verify_enabled':
            True,
            'updates_builder_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'branch':
            'beta',
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'l10n_config':
            L10N_CONFIG,
            'en_US_config':
            EN_US_CONFIG,
            'uptake_monitoring_enabled':
            True,
            'update_verify_channel':
            'beta-cdntest',
            'update_verify_requires_cdn_push':
            True,
            'accepted_mar_channel_id':
            None,
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
        })

        graph = make_task_graph(**test_kwargs)
        self.assertIsNone(
            get_task_by_name(graph, 'release-foo-firefox_email_foo-localtest'))
예제 #39
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "project:releng:signing:format:gpg",
                "queue:define-task:buildbot-bridge/buildbot-bridge",
                "queue:create-task:buildbot-bridge/buildbot-bridge",
                "queue:task-priority:high"
            }),
            'tasks': None,
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "linux": {"unsigned_task_id": "xyz", "signed_task_id": "xyx"},
                    "win32": {"unsigned_task_id": "xyz", "signed_task_id": "xyz"},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={'queue:task-priority:high'}),
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'NO_BBCONFIG': '1',
                        'VERIFY_CONFIG': 'beta-firefox-win32.cfg',
                        'TOTAL_CHUNKS': '12',
                        'THIS_CHUNK': '3'
                    }
                }
            }
        }, extra=True, required=True)

        # Ensure the task exists, and is a dict
        self.builder_exists_schema = Schema(dict)

        test_args = create_firefox_test_args({
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'update_verify_enabled': True,
            'updates_builder_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'branch': 'beta',
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'l10n_config': L10N_CONFIG,
            'en_US_config': EN_US_CONFIG,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
        })
        self.graph = make_task_graph(**test_args)
        self.task = get_task_by_name(self.graph, "release-beta_firefox_win32_update_verify_beta_3")
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'b2gtest',
                'payload': {
                    'command': [str],
                    'env': dict,
                    'image': Match(r'^rail/python-test-runner'),
                }
            }
        }, extra=True, required=True)

        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={'queue:task-priority:high'}),
        }, extra=True, required=True)

        test_args = create_firefox_test_args({
            'push_to_releases_enabled': True,
            'uptake_monitoring_enabled': True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'final_verify_platforms': ["macosx64", "win32", "win64", "linux", "linux64"],
            'enUS_platforms': ["linux", "linux64", "win64", "win32", "macosx64"],
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                },
            },
        })
        self.graph = make_task_graph(**test_args)
        self.task = get_task_by_name(self.graph, "foo_final_verify")
예제 #42
0
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'checksums_enabled':
            True,
            'updates_enabled':
            True,
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'push_to_releases_automatic':
            True,
            'branch':
            'mozilla-beta',
            'repo_path':
            'releases/mozilla-beta',
            'signing_pvt_key':
            PVT_KEY_FILE,
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'partner_repacks_platforms': [],
            'eme_free_repacks_platforms': [],
            'sha1_repacks_platforms': [],
            'en_US_config':
            EN_US_CONFIG,
            'l10n_config':
            L10N_CONFIG,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(
            self.graph,
            "release-{}_{}_push_to_releases".format("mozilla-beta", "firefox"))
예제 #43
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={'queue:task-priority:high'}),
        }, extra=True, required=True)

        self.test_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'version': '42.0b2',
                        'build_number': 3,
                    }
                }
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'checksums_enabled': True,
            'updates_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_chcksms")
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'build_number': 3,
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                        'partial_versions': ', '.join([
                            '37.0build2',
                            '38.0build1',
                        ]),
                    }
                }
            }
        }, required=True, extra=True)

        test_kwargs = create_firefox_test_args({
            'bouncer_enabled': True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo_firefox_bncr_sub")
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'checksums_enabled': True,
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': True,
            'branch': 'mozilla-beta',
            'repo_path': 'releases/mozilla-beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'partner_repacks_platforms': [],
            'eme_free_repacks_platforms': [],
            'sha1_repacks_platforms': [],
            'en_US_config': EN_US_CONFIG,
            'l10n_config': L10N_CONFIG,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-{}_{}_push_to_releases".format("mozilla-beta", "firefox"))
    def setUp(self):
        # Task attributes common to each partner repack
        common_task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'version': '42.0b2',
                        'build_number': 3,
                    }
                }
            }
        })

        self.partner_task_schema = common_task_schema.extend(
            {
                'task': {
                    'payload': {
                        'properties': {
                            'repack_manifests_url':
                            '[email protected]:mozilla-partners/repack-manifests.git',
                        }
                    }
                }
            },
            required=True,
            extra=True)

        self.eme_free_task_schema = common_task_schema.extend(
            {
                'task': {
                    'payload': {
                        'properties': {
                            'repack_manifests_url':
                            'https://github.com/mozilla-partners/mozilla-EME-free-manifest',
                        }
                    }
                }
            },
            required=True,
            extra=True)

        self.sha1_task_schema = common_task_schema.extend(
            {
                'task': {
                    'payload': {
                        'properties': {
                            'repack_manifests_url':
                            'https://github.com/mozilla-partners/mozilla-sha1-manifest',
                        }
                    }
                }
            },
            required=True,
            extra=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'push_to_releases_automatic':
            True,
            'source_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'partner_repacks_platforms': ['win32', 'linux'],
            'eme_free_repacks_platforms': ['win32', 'macosx64'],
            'sha1_repacks_platforms': ['win32'],
            'release_channels': ['foo', 'bar'],
            'en_US_config': {
                "platforms": {
                    "linux": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "macosx64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "win32": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "macosx64": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.dmg",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.partner_tasks = [
            get_task_by_name(
                self.graph,
                "release-foo-firefox-{}_partner_repacks".format(platform))
            for platform in ["win32", "linux"]
        ]
        self.eme_free_tasks = [
            get_task_by_name(
                self.graph,
                "release-foo-firefox-{}_eme_free_repacks".format(platform))
            for platform in ["win32", "macosx64"]
        ]
        self.sha1_tasks = [
            get_task_by_name(
                self.graph,
                "release-foo-firefox-{}_sha1_repacks".format(platform))
            for platform in ["win32"]
        ]

        self.partner_push_to_mirrors_task = get_task_by_name(
            self.graph, "release-foo-firefox_partner_repacks_copy_to_releases")
        self.push_to_mirrors_task = get_task_by_name(
            self.graph, "release-foo_firefox_push_to_releases")

        self.upstream_dependencies = [
            "release-foo_firefox_{}_complete_en-US_beetmover_candidates".
            format(platform) for platform in ["win32", "linux", "macosx64"]
        ] + [
            "release-foo_firefox_{}_l10n_repack_beetmover_candidates_1".format(
                platform) for platform in ["win32", "linux", "macosx64"]
        ]
    def setUp(self):
        self.task_schema = Schema(
            {
                'task': {
                    'scopes': list,
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'product':
                            'firefox',
                            'version':
                            '42.0b2',
                            'build_number':
                            3,
                            'repo_path':
                            'releases/foo',
                            'script_repo_revision':
                            'abcd',
                            'revision':
                            'abcdef123456',
                            'tuxedo_server_url':
                            'https://bouncer.real.allizom.org/api',
                        }
                    }
                }
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'uptake_monitoring_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'uptake_monitoring_platforms':
            ["macosx64", "win32", "win64", "linux", "linux64"],
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "win32": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "win64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "linux": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "linux64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_uptake_monitoring")
        self.payload = self.task["task"]["payload"]
예제 #48
0
    def setUp(self):
        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'aws-provisioner-v1',
                    'workerType': 'gecko-decision',
                    'payload': {
                        'command': [
                            '/bin/echo',
                            'Dummy task to tell pulse-notify to send an email'
                        ],
                    },
                    'metadata': {
                        'name': 'firefox email release-drivers foo-cdntest',
                    },
                    'extra': {
                        'notifications': {
                            'task-completed': {
                                'subject':
                                'firefox foo 42.0b2 updates are available on the foo-cdntest channel now <EOM>',
                                'message':
                                'firefox foo 42.0b2 updates are available on the foo-cdntest channel now <EOM>',
                                'ids': ['release-drivers'],
                            },
                        },
                    },
                },
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'uptake_monitoring_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'uptake_monitoring_platforms':
            ["macosx64", "win32", "win64", "linux", "linux64"],
            'partner_repacks_platforms': [],
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'eme_free_repacks_platforms': [],
            'sha1_repacks_platforms': ['win32'],
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "win32": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "win64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "linux": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "linux64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux64": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_publish_balrog")
        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_email_foo-cdntest")
    def setUp(self):
        # Task attributes common to each partner repack
        common_task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'version': '42.0b2',
                        'build_number': 3,
                    }
                }
            }
        })

        self.partner_task_schema = common_task_schema.extend({
            'task': {
                'payload': {
                    'properties': {
                        'repack_manifests_url': '[email protected]:mozilla-partners/repack-manifests.git',
                    }
                }
            }
        }, required=True, extra=True)

        self.eme_free_task_schema = common_task_schema.extend({
            'task': {
                'payload': {
                    'properties': {
                        'repack_manifests_url': 'https://github.com/mozilla-partners/mozilla-EME-free-manifest',
                    }
                }
            }
        }, required=True, extra=True)

        self.sha1_task_schema = common_task_schema.extend({
            'task': {
                'payload': {
                    'properties': {
                        'repack_manifests_url': 'https://github.com/mozilla-partners/mozilla-sha1-manifest',
                    }
                }
            }
        }, required=True, extra=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'push_to_releases_automatic': True,
            'source_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'partner_repacks_platforms': ['win32', 'linux'],
            'eme_free_repacks_platforms': ['win32', 'macosx64'],
            'sha1_repacks_platforms': ['win32'],
            'release_channels': ['foo', 'bar'],
            'en_US_config': {
                "platforms": {
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "macosx64": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.dmg",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.partner_tasks = [
            get_task_by_name(self.graph, "release-foo-firefox-{}_partner_repacks".format(platform))
            for platform in ["win32", "linux"]
        ]
        self.eme_free_tasks = [
            get_task_by_name(self.graph, "release-foo-firefox-{}_eme_free_repacks".format(platform))
            for platform in ["win32", "macosx64"]
        ]
        self.sha1_tasks = [
            get_task_by_name(self.graph, "release-foo-firefox-{}_sha1_repacks".format(platform))
            for platform in ["win32"]
        ]

        self.partner_push_to_mirrors_task = get_task_by_name(self.graph, "release-foo-firefox_partner_repacks_copy_to_releases")
        self.push_to_mirrors_task = get_task_by_name(self.graph, "release-foo_firefox_push_to_releases")

        self.upstream_dependencies = [
            "release-foo_firefox_{}_complete_en-US_beetmover_candidates".format(platform)
            for platform in ["win32", "linux", "macosx64"]
        ] + [
            "release-foo_firefox_{}_l10n_repack_beetmover_candidates_1".format(platform)
            for platform in ["win32", "linux", "macosx64"]
        ]
예제 #50
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "docker-worker:cache:tc-vcs",
                "docker-worker:image:taskcluster/builder:*",
                "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
                "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                "docker-worker:cache:build-foo-release-workspace",
                "docker-worker:cache:tooltool-cache",
                "project:releng:signing:format:gpg",
                "project:releng:signing:cert:release-signing",
                "docker-worker:relengapi-proxy:tooltool.download.public",
            })
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'scopes': generate_scope_validator(scopes={
                    "docker-worker:cache:tc-vcs",
                    "docker-worker:image:taskcluster/builder:0.5.9",
                    "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                    "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
                    "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                    "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                    "docker-worker:cache:build-foo-release-workspace",
                    "docker-worker:cache:tooltool-cache",
                    "docker-worker:relengapi-proxy:tooltool.download.public",
                }),
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-3-b-linux',
                'payload': {
                    'artifacts': dict,
                    'command': list,
                    'cache': dict,
                    'image': Match(r'^rail/source-builder@sha256'),
                    'env': {
                        'MOZ_PKG_VERSION': '42.0b2',
                    }
                }
            }
        }, extra=True, required=True)

        self.signing_task_schema = Schema({
            'task': {
                'scopes': generate_scope_validator(scopes={
                    "project:releng:signing:format:gpg",
                    "project:releng:signing:cert:release-signing",
                }),
                'provisionerId': 'signing-provisioner-v1',
                'workerType': 'signing-worker-v1',
                'payload': All({
                    'signingManifest': str,
                }, Length(1))
            }
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'source_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': EN_US_CONFIG,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "foo_source")
        self.signing_task = get_task_by_name(self.graph, "foo_source_signing")
예제 #51
0
    def setUp(self):
        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'aws-provisioner-v1',
                    'workerType': 'gecko-3-decision',
                    'payload': {
                        'command': [
                            '/bin/echo',
                            'Dummy task to tell pulse-notify to send an email'
                        ],
                    },
                    'metadata': {
                        'name': 'firefox email release-drivers foo',
                    },
                    'extra': {
                        'notifications': {
                            'task-completed': {
                                'subject':
                                'firefox foo 42.0b2 updates are available on the foo channel now <EOM>',
                                'message':
                                'firefox foo 42.0b2 updates are available on the foo channel now <EOM>',
                                'ids': ['release-drivers'],
                            },
                        },
                    },
                },
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'publish_to_balrog_channels': ["release-dev", "alpha"],
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "win32": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "win64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                    "linux": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "linux64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc',
                        "ci_system": "tc"
                    },
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_email_foo")
예제 #52
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(
                    scopes={
                        "docker-worker:cache:tc-vcs",
                        "docker-worker:image:taskcluster/builder:*",
                        "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                        "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
                        "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                        "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                        "docker-worker:cache:build-foo-release-workspace",
                        "docker-worker:cache:tooltool-cache",
                        "project:releng:signing:format:gpg",
                        "project:releng:signing:cert:release-signing",
                        "docker-worker:relengapi-proxy:tooltool.download.public",
                    })
            },
            extra=True,
            required=True)

        self.task_schema = Schema(
            {
                'task': {
                    'scopes':
                    generate_scope_validator(
                        scopes={
                            "docker-worker:cache:tc-vcs",
                            "docker-worker:image:taskcluster/builder:0.5.9",
                            "queue:define-task:aws-provisioner-v1/gecko-3-b-linux",
                            "queue:create-task:aws-provisioner-v1/gecko-3-b-linux",
                            "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                            "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                            "docker-worker:cache:build-foo-release-workspace",
                            "docker-worker:cache:tooltool-cache",
                            "docker-worker:relengapi-proxy:tooltool.download.public",
                        }),
                    'provisionerId':
                    'aws-provisioner-v1',
                    'workerType':
                    'gecko-3-b-linux',
                    'payload': {
                        'artifacts': dict,
                        'command': list,
                        'cache': dict,
                        'image': Match(r'^rail/source-builder@sha256'),
                        'env': {
                            'MOZ_PKG_VERSION': '42.0b2',
                        }
                    }
                }
            },
            extra=True,
            required=True)

        self.signing_task_schema = Schema(
            {
                'task': {
                    'scopes':
                    generate_scope_validator(
                        scopes={
                            "project:releng:signing:format:gpg",
                            "project:releng:signing:cert:release-signing",
                        }),
                    'provisionerId':
                    'signing-provisioner-v1',
                    'workerType':
                    'signing-worker-v1',
                    'payload':
                    All({
                        'signingManifest': str,
                    }, Length(1))
                }
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'source_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': EN_US_CONFIG,
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "foo_source")
        self.signing_task = get_task_by_name(self.graph, "foo_source_signing")
예제 #53
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(scopes={'queue:task-priority:high'}),
            },
            required=True,
            extra=True)

        self.human_task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'null-provisioner',
                    'workerType': 'human-decision',
                }
            },
            required=True,
            extra=True)

        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'product':
                            'firefox',
                            'version':
                            '42.0b2',
                            'build_number':
                            3,
                            'repo_path':
                            'releases/foo',
                            'script_repo_revision':
                            'abcd',
                            'revision':
                            'abcdef123456',
                            'tuxedo_server_url':
                            'https://bouncer.real.allizom.org/api',
                        }
                    }
                }
            },
            required=True,
            extra=True)

        test_kwargs = create_firefox_test_args({
            'postrelease_bouncer_aliases_enabled':
            True,
            'release_channels': ['foo'],
            'signing_pvt_key':
            PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)

        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_bouncer_aliases")
        self.human_task = get_task_by_name(self.graph,
                                           "publish_release_human_decision")
예제 #54
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(scopes={'queue:task-priority:high'}),
            },
            extra=True,
            required=True)

        self.test_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'version': '42.0b2',
                            'build_number': 3,
                        }
                    }
                }
            },
            extra=True,
            required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'checksums_enabled':
            True,
            'updates_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'accepted_mar_channel_id':
            'firefox-mozilla-beta',
            'signing_cert':
            'dep',
            'moz_disable_mar_cert_verification':
            True,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyx",
                        "repackage_task_id": "xyx",
                        "repackage-signing_task_id": "xyx",
                        "ci_system": "tc"
                    },
                    "win64": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyx",
                        "repackage_task_id": "xyx",
                        "repackage-signing_task_id": "xyx",
                        "ci_system": "tc"
                    },
                    "linux64": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyx",
                        "ci_system": "tc"
                    },
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_chcksms")
예제 #55
0
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'gecko-decision',
                'payload': {
                    'command': ['/bin/echo', 'Dummy task to tell pulse-notify to send an email'],
                },
                'metadata': {
                    'name': 'firefox email release-drivers foo-cdntest',
                },
                'extra': {
                    'notifications': {
                        'task-completed': {
                            'subject': 'firefox foo 42.0b2 updates are available on the foo-cdntest channel now <EOM>',
                            'message': 'firefox foo 42.0b2 updates are available on the foo-cdntest channel now <EOM>',
                            'ids': ['release-drivers'],
                        },
                    },
                },
            },
        }, extra=True, required=True)

        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled': True,
            'push_to_releases_enabled': True,
            'uptake_monitoring_enabled': True,
            'signing_pvt_key': PVT_KEY_FILE,
            'uptake_monitoring_platforms': ["macosx64", "win32", "win64", "linux", "linux64"],
            'partner_repacks_platforms': [],
            'accepted_mar_channel_id': 'firefox-mozilla-beta',
            'signing_cert': 'dep',
            'moz_disable_mar_cert_verification': True,
            'eme_free_repacks_platforms': [],
            'sha1_repacks_platforms': ['win32'],
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win32": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "win64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                    "linux64": {'signed_task_id': 'abc', 'unsigned_task_id': 'abc'},
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux64": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url": "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },

                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_publish_balrog")
        self.task = get_task_by_name(self.graph, "release-foo-firefox_email_foo-cdntest")
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'push_to_candidates_enabled':
            True,
            'push_to_releases_enabled':
            True,
            'uptake_monitoring_enabled':
            True,
            'signing_pvt_key':
            PVT_KEY_FILE,
            'uptake_monitoring_platforms':
            ["macosx64", "win32", "win64", "linux", "linux64"],
            'partner_repacks_platforms': [],
            'eme_free_repacks_platforms': [],
            'sha1_repacks_platforms': ['win32'],
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "win32": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "win64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "linux": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                    "linux64": {
                        'signed_task_id': 'abc',
                        'unsigned_task_id': 'abc'
                    },
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.exe",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux64": {
                        "en_us_binary_url":
                        "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "mar_tools_url":
                        "https://queue.taskcluster.net/something/",
                        "locales": ["de", "en-GB", "zh-TW"],
                        "chunks": 1,
                    },
                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "zh-TW": "default",
                },
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_uptake_monitoring")