def generate_task_dependency_validator(self):
        en_US_tmpl = "release-beta_firefox_{}_complete_en-US_beetmover_candidates"
        en_US_partials_tmpl = "release-beta_firefox_{p}_partial_en-US_{v}build{n}_beetmover_candidates"
        l10n_tmpl = "release-beta_firefox_{}_l10n_repack_beetmover_candidates_1"
        l10n_partials_tmpl = "release-beta_firefox_{p}_l10n_repack_partial_{v}build{n}_beetmover_candidates_1"
        en_US_balrog_tmpl = "{p}_en-US_{v}build{n}_funsize_balrog_task"
        l10n_balrog_tmpl = "release-beta_firefox_{p}_l10n_repack_1_{v}_balrog_task"

        requires = []
        for completes in (en_US_tmpl, l10n_tmpl):
            requires.extend([
                get_task_by_name(self.graph, completes.format(p))["taskId"]
                for p in ("macosx64", "win32", "win64")
            ])
        for partials in (en_US_partials_tmpl, l10n_partials_tmpl, en_US_balrog_tmpl, l10n_balrog_tmpl):
            requires.extend([
                get_task_by_name(self.graph, partials.format(p=platform, v=p_version, n=p_build_num))["taskId"]
                for platform in ("macosx64", "win32", "win64")
                for p_version, p_build_num in (('38.0', '1'), ('37.0', '2'))
                ])
        requires.append(get_task_by_name(self.graph, "release-beta-firefox_updates")["taskId"])

        @truth
        def validate_task_dependencies(task):
            return sorted(requires) == sorted(task['requires'])

        return validate_task_dependencies
示例#2
0
 def test_source_sig_required_by_push_to_mirrors(self):
     push_to_mirrors = get_task_by_name(
         self.graph, "release-foo_firefox_push_to_releases")
     foo_source_signing_beet = get_task_by_name(self.graph,
                                                "foo_source_signing_beet")
     self.assertIn(foo_source_signing_beet["taskId"],
                   push_to_mirrors["requires"])
    def setUp(self):
        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'opt-linux64',
            }
        }, extra=True, required=True)

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

        self.graph = make_task_graph(**test_kwargs)
        self.tasks = {
            'win32': get_task_by_name(
                self.graph, "release-{}_{}_{}_l10n_repack_partial_{}build{}_beetmover_candidates_{}".format(
                    "mozilla-beta", "firefox", 'win32', "38.0", 1, 1
                )
            ),
            'macosx64': get_task_by_name(
                self.graph, "release-{}_{}_{}_l10n_repack_partial_{}build{}_beetmover_candidates_{}".format(
                    "mozilla-beta", "firefox", 'macosx64', "37.0", 2, 1
                )
            ),
        }
示例#4
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'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {"task_id": "xyz"},
                    "win32": {"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")
示例#5
0
    def test_funsize_name(self):
        for platform in ("win32", "linux64",):
            for version in ("37.0", "38.0",):
                for chunk in ('1', '2',):
                    generator_schema = Schema({
                        'task': {'metadata': {
                            'name': "[funsize] Update generating task %s chunk %s for %s" % (platform, chunk, version,)}}
                    }, extra=True, required=True)
                    signing_schema = Schema({
                        'task': {'metadata': {
                            'name': "[funsize] MAR signing task %s chunk %s for %s" % (platform, chunk, version,)}}
                    }, extra=True, required=True)
                    balrog_schema = Schema({
                        'task': {'metadata': {
                            'name': "[funsize] Publish to Balrog %s chunk %s for %s" % (platform, chunk, version,)}}
                    }, extra=True, required=True)
                    generator = get_task_by_name(self.graph,
                                                 "release-mozilla-beta_firefox_{pl}_l10n_repack_{c}_{part}_update_generator".format(
                                                     pl=platform, part=version, c=chunk))
                    signing = get_task_by_name(self.graph,
                                               "release-mozilla-beta_firefox_{pl}_l10n_repack_{c}_{part}_signing_task".format(
                                                   pl=platform, part=version, c=chunk))
                    balrog = get_task_by_name(self.graph,
                                              "release-mozilla-beta_firefox_{pl}_l10n_repack_{c}_{part}_balrog_task".format(
                                                  pl=platform, part=version, c=chunk))

                    verify(generator, generator_schema)
                    verify(signing, signing_schema)
                    verify(balrog, balrog_schema)
示例#6
0
    def generate_task_requires_validator(self):
        en_US_tmpl = "release-mozilla-beta_firefox_{}_complete_en-US_beetmover_candidates"
        en_US_partials_tmpl = "release-mozilla-beta_firefox_{}_partial_en-US_{}build{}_beetmover_candidates"
        l10n_tmpl = "release-mozilla-beta_firefox_{}_l10n_repack_beetmover_candidates_1"
        l10n_partials_tmpl = "release-mozilla-beta_firefox_{}_l10n_repack_partial_{}build{}_beetmover_candidates_1"
        requires = []
        for completes in (en_US_tmpl, l10n_tmpl):
            requires.extend([
                get_task_by_name(self.graph, completes.format(p))["taskId"]
                for p in ("macosx64", "win32")
            ])
        for partials in (en_US_partials_tmpl, l10n_partials_tmpl):
            requires.extend([
                get_task_by_name(self.graph, partials.format(platform, p_version, p_build_num))[
                    "taskId"]
                for platform in ("macosx64", "win32")
                for p_version, p_build_num in (('38.0', '1'), ('37.0', '2'))
            ])
        requires.append(get_task_by_name(self.graph, "release-mozilla-beta-firefox_chcksms")["taskId"])

        @truth
        def validate_task_requires(task):
            return sorted(task['requires']) == sorted(requires)

        return validate_task_requires
    def generate_command_requirements_validator(self, platform):
        if platform == 'win32':
            buildername = "release-mozilla-beta_firefox_win32_l10n_repack_1_38.0_signing_task"
            funsize_artifact = get_task_by_name(self.graph, buildername)

            required_elements = (
                "--partial-version 38.0",
                "--locale de --locale en-GB --locale zh-TW",
                "--taskid {}".format(funsize_artifact['taskId']),
                "--platform {}".format(buildbot2ftp(platform)),
                "--version 42.0b2",
            )

        elif platform == 'macosx64':
            buildername = "release-mozilla-beta_firefox_macosx64_l10n_repack_1_37.0_signing_task"
            funsize_artifact = get_task_by_name(self.graph, buildername)

            required_elements = (
                "--partial-version 37.0",
                "--locale de --locale en-GB --locale zh-TW",
                "--taskid {}".format(funsize_artifact['taskId']),
                "--platform {}".format(buildbot2ftp(platform)),
                "--version 42.0b2",
            )

        @truth
        def validate_command_requirements(task):
            command = ''.join(task['task']['payload']['command'])
            for element in required_elements:
                if element not in command:
                    return False
            else:
                return True

        return validate_command_requirements
示例#8
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "docker-worker:image:taskcluster/builder:*",
                "queue:define-task:aws-provisioner-v1/opt-linux64",
                "queue:create-task:aws-provisioner-v1/opt-linux64",
                "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/opt-linux64",
                    "queue:create-task:aws-provisioner-v1/opt-linux64",
                    "queue:define-task:aws-provisioner-v1/build-c4-2xlarge",
                    "queue:create-task:aws-provisioner-v1/build-c4-2xlarge",
                }),
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'opt-linux64',
                '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")
示例#9
0
    def setUp(self):
        test_kwargs = create_firefox_test_args({
            'updates_enabled': True,
            'push_to_candidates_enabled': True,
            'branch': 'mozilla-beta',
            'repo_path': 'releases/mozilla-beta',
            'signing_pvt_key': PVT_KEY_FILE,
            'release_channels': ['beta'],
            'final_verify_channels': ['beta'],
            'enUS_platforms': ['win32'],
            'en_US_config': {
                "platforms": {
                    "win32": {"task_id": "xyy"}
                }
            },
            'l10n_config': {
                "platforms": {
                    "win32": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.exe",
                        "locales": ["de", "en-GB", "ru", "uk", "zh-TW"],
                        "chunks": 1,
                    },
                    "linux64": {
                        "en_us_binary_url": "https://queue.taskcluster.net/something/firefox.tar.xz",
                        "locales": ["de", "en-GB", "ru", "uk", "zh-TW"],
                        "chunks": 1,
                    },
                },
                "changesets": {
                    "de": "default",
                    "en-GB": "default",
                    "ru": "default",
                    "uk": "default",
                    "zh-TW": "default",
                },
            },
            'partial_updates': {
                '38.0': {
                    'buildNumber': 1,
                    'locales': [
                        'de', 'en-GB', 'ru', 'uk', 'zh-TW'
                    ]
                },
                '37.0': {
                    'buildNumber': 2,
                    'locales': [
                        'de', 'en-GB', 'ru', 'uk'
                    ]
                }
            }
        })
        self.graph = make_task_graph(**test_kwargs)

        self.update_generator_37 = get_task_by_name(self.graph, "release-mozilla-beta_firefox_win32_l10n_repack_1_37.0_update_generator")
        self.update_generator_38 = get_task_by_name(self.graph, "release-mozilla-beta_firefox_win32_l10n_repack_1_38.0_update_generator")

        self.beetmover_candidates_37 = get_task_by_name(self.graph, "release-mozilla-beta_firefox_win32_l10n_repack_partial_37.0build2_beetmover_candidates_1")
        self.beetmover_candidates_38 = get_task_by_name(self.graph, "release-mozilla-beta_firefox_win32_l10n_repack_partial_38.0build1_beetmover_candidates_1")
    def generate_task_requires_validator(self):
        requires = [
            get_task_by_name(self.graph, "release-foo_firefox_push_to_releases")["taskId"],
            get_task_by_name(self.graph, "release-foo-firefox_partner_repacks_copy_to_releases")["taskId"],
        ]

        @truth
        def validate_task_requires(task):
            return sorted(requires) == sorted(task['requires'])

        return validate_task_requires
示例#11
0
 def test_funsize_name(self):
     for p in ("win32", "macosx64",):
         for v in ("38.0build1", "37.0build2",):
             generator = get_task_by_name(self.graph, "{}_en-US_{}_funsize_update_generator".format(p, v))
             signing = get_task_by_name(self.graph, "{}_en-US_{}_funsize_signing_task".format(p, v))
             balrog = get_task_by_name(self.graph, "{}_en-US_{}_funsize_balrog_task".format(p, v))
             self.assertEquals(generator["task"]["metadata"]["name"],
                               "[funsize] Update generating task %s %s for %s" % (p, "en-US", v.split('build')[0],))
             self.assertEquals(signing["task"]["metadata"]["name"],
                               "[funsize] MAR signing task %s %s for %s" % (p, "en-US", v.split('build')[0],))
             self.assertEquals(balrog["task"]["metadata"]["name"],
                               "[funsize] Publish to Balrog %s %s for %s" % (p, "en-US", v.split('build')[0],))
示例#12
0
 def test_partials_present(self):
     for pl in ["win32", "linux64"]:
         for part in ["37.0", "38.0"]:
             for chunk in [1, 2]:
                 task_name1 = "release-mozilla-beta_firefox_{pl}_l10n_repack_{chunk}_{part}_update_generator".format(
                     pl=pl, part=part, chunk=chunk)
                 task_name2 = "release-mozilla-beta_firefox_{pl}_l10n_repack_{chunk}_{part}_signing_task".format(
                     pl=pl, part=part, chunk=chunk)
                 self.assertIsNotNone(get_task_by_name(
                     self.graph, task_name1))
                 self.assertIsNotNone(get_task_by_name(
                     self.graph, task_name2))
示例#13
0
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         checksums_enabled=False,
         en_US_config={
             "platforms": {
                 "macosx64": {},
                 "win32": {},
                 "win64": {},
                 "linux": {},
                 "linux64": {},
             }
         },
         l10n_config={},
         repo_path="releases/foo",
         product="firefox",
         revision="fedcba654321",
         mozharness_changeset="abcd",
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
                 "locales": ["de", "en-GB", "zh-TW"],
             },
             "37.0": {
                 "buildNumber": 2,
                 "locales": ["de", "en-GB", "zh-TW"],
             },
         },
         branch="foo",
         updates_enabled=False,
         bouncer_enabled=True,
         push_to_candidates_enabled=False,
         push_to_releases_enabled=False,
         uptake_monitoring_enabled=False,
         postrelease_version_bump_enabled=True,
         postrelease_bouncer_aliases_enabled=False,
         signing_class="release-signing",
         release_channels=["foo"],
         final_verify_channels=["foo"],
         balrog_api_root="https://balrog.real/api",
         funsize_balrog_api_root="http://balrog/api",
         signing_pvt_key=PVT_KEY_FILE,
         build_tools_repo_path='build/tools',
     )
     self.task = get_task_by_name(
         self.graph, "release-foo-firefox_version_bump")
     self.human_task = get_task_by_name(
         self.graph, "post_release_human_decision")
     self.payload = self.task["task"]["payload"]
示例#14
0
 def test_not_required_by_push_to_mirrors(self):
     push_to_mirrors = get_task_by_name(
         self.graph, "release-foo_firefox_push_to_releases")
     for platform in ["win32", "linux"]:
         partner_repacks = get_task_by_name(
             self.graph,
             "release-foo-firefox-{}_partner_repacks".format(platform))
         self.assertNotIn(partner_repacks["taskId"],
                          push_to_mirrors["requires"])
         eme_free = get_task_by_name(
             self.graph,
             "release-foo-firefox-{}_eme_free_repacks".format(platform))
         self.assertNotIn(eme_free["taskId"],
                          push_to_mirrors["requires"])
示例#15
0
    def test_task_scopes(self):
        for p in ("win32", "macosx64"):
            for v in ("38.0build1", "37.0build2"):
                generator = get_task_by_name(self.graph, "{}_en-US_{}_funsize_update_generator".format(p, v))
                signing = get_task_by_name(self.graph, "{}_en-US_{}_funsize_signing_task".format(p, v))
                balrog = get_task_by_name(self.graph, "{}_en-US_{}_funsize_balrog_task".format(p, v))

                self.assertIsNone(generator["task"].get("scopes"))
                self.assertItemsEqual(
                    signing["task"]["scopes"],
                    ["project:releng:signing:cert:release-signing",
                     "project:releng:signing:format:mar",
                     "project:releng:signing:format:gpg"])
                self.assertItemsEqual(balrog["task"]["scopes"], ["docker-worker:feature:balrogVPNProxy"])
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         checksums_enabled=False,
         updates_enabled=True,
         bouncer_enabled=False,
         push_to_candidates_enabled=True,
         beetmover_candidates_bucket="mozilla-releng-beet-mover-dev",
         push_to_releases_enabled=False,
         uptake_monitoring_enabled=False,
         postrelease_version_bump_enabled=False,
         postrelease_bouncer_aliases_enabled=False,
         en_US_config=self.en_US_config,
         l10n_config=self.l10n_config,
         partial_updates={
             "38.0": {"buildNumber": 1, "locales": ["de", "en-GB", "zh-TW"]},
             "37.0": {"buildNumber": 2, "locales": ["de", "en-GB", "zh-TW"]},
         },
         balrog_api_root="https://balrog.real/api",
         funsize_balrog_api_root="http://balrog/api",
         signing_class="release-signing",
         branch="mozilla-beta",
         product="firefox",
         repo_path="releases/mozilla-beta",
         revision="abcdef123456",
         mozharness_changeset="abcd",
         release_channels=["beta"],
         final_verify_channels=["beta"],
         signing_pvt_key=PVT_KEY_FILE,
         build_tools_repo_path="build/tools",
     )
     self.tasks = {
         "win32": get_task_by_name(
             self.graph,
             "release-{}_{}_{}_l10n_repack_partial_{}build{}_beetmover_candidates_{}".format(
                 "mozilla-beta", "firefox", "win32", "38.0", 1, 1
             ),
         ),
         "macosx64": get_task_by_name(
             self.graph,
             "release-{}_{}_{}_l10n_repack_partial_{}build{}_beetmover_candidates_{}".format(
                 "mozilla-beta", "firefox", "macosx64", "37.0", 2, 1
             ),
         ),
     }
示例#17
0
 def test_funsize_name(self):
     for platform in ("win32", "linux64",):
         for version in ("37.0", "38.0",):
             generator = get_task_by_name(self.graph,
                                          "release-mozilla-beta_firefox_{pl}_l10n_repack_1_{part}_update_generator".format(pl=platform, part=version))
             signing = get_task_by_name(self.graph,
                                        "release-mozilla-beta_firefox_{pl}_l10n_repack_1_{part}_signing_task".format(pl=platform, part=version))
             balrog = get_task_by_name(self.graph,
                                       "release-mozilla-beta_firefox_{pl}_l10n_repack_1_{part}_balrog_task".format(pl=platform, part=version))
             self.assertEqual(generator["task"]["metadata"]["name"],
                              "[funsize] Update generating task %s chunk %s for %s" % (platform, "1", version,))
             self.assertEqual(signing["task"]["metadata"]["name"],
                              "[funsize] MAR signing task %s chunk %s for %s" % (platform, "1", version,))
             self.assertEqual(balrog["task"]["metadata"]["name"],
                              "[funsize] Publish to Balrog %s chunk %s for %s" % (platform, "1", version,))
    def generate_task_requires_validator(self):
        requires = [
            get_task_by_name(self.graph,
                             "release-foo_firefox_push_to_releases")["taskId"],
            get_task_by_name(
                self.graph,
                "release-foo-firefox_partner_repacks_copy_to_releases")
            ["taskId"],
        ]

        @truth
        def validate_task_requires(task):
            return sorted(requires) == sorted(task['requires'])

        return validate_task_requires
示例#19
0
    def test_partials_present(self):
        for pl in ["win32", "linux64"]:
            for part in ["37.0", "38.0"]:
                for chunk in [1, 2]:
                    partials_name_1 = "release-mozilla-beta_firefox_{pl}_l10n_repack_{chunk}_{part}_update_generator".format(
                        pl=pl, part=part, chunk=chunk)
                    partials_name_2 = "release-mozilla-beta_firefox_{pl}_l10n_repack_{chunk}_{part}_signing_task".format(
                        pl=pl, part=part, chunk=chunk)

                    partials_1 = get_task_by_name(self.graph, partials_name_1)
                    partials_2 = get_task_by_name(self.graph, partials_name_2)

                    # Verify the partial tasks are not none
                    verify(partials_1, self.partials_schema)
                    verify(partials_2, self.partials_schema)
示例#20
0
    def test_partials_present(self):
        for pl in ["win32", "linux64"]:
            for part in ["37.0", "38.0"]:
                for chunk in [1, 2]:
                    partials_name_1 = "release-mozilla-beta_firefox_{pl}_l10n_repack_{chunk}_{part}_update_generator".format(
                        pl=pl, part=part, chunk=chunk)
                    partials_name_2 = "release-mozilla-beta_firefox_{pl}_l10n_repack_{chunk}_{part}_signing_task".format(
                        pl=pl, part=part, chunk=chunk)

                    partials_1 = get_task_by_name(self.graph, partials_name_1)
                    partials_2 = get_task_by_name(self.graph, partials_name_2)

                    # Verify the partial tasks are not none
                    verify(partials_1, self.partials_schema)
                    verify(partials_2, self.partials_schema)
示例#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")
    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")
示例#23
0
 def test_new_locale_not_in_update_generator(self):
     t = get_task_by_name(
         self.graph,
         "release-mozilla-beta_firefox_win32_l10n_repack_1_37.0_update_generator")
     self.assertEqual(
         sorted(["de", "en-GB", "ru", "uk"]),
         sorted([p["locale"] for p in t["task"]["extra"]["funsize"]["partials"]]))
示例#24
0
 def test_partials_present(self):
     for pl in ["win32", "linux64"]:
         for part in ["37.0", "38.0"]:
             task_name = "release-mozilla-beta_firefox_{pl}_l10n_repack_1_{part}_update_generator".format(
                 pl=pl, part=part)
             self.assertIsNotNone(get_task_by_name(
                 self.graph, task_name))
示例#25
0
 def test_requires(self):
     tmpl = "release-foo_firefox_{}_complete_en-US_beetmover_candidates"
     requires = [
         get_task_by_name(self.graph, tmpl.format(p))["taskId"]
         for p in ("linux", "linux64", "macosx64", "win32", "win64")
     ]
     self.assertEqual(sorted(self.task["requires"]), sorted(requires))
 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,
         '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")
示例#27
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,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {"task_id": "abc"},
                    "win64": {"task_id": "jgh"},
                    "linux64": {"task_id": "lmn"},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_chcksms")
示例#28
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,
            'en_US_config': {
                "platforms": {
                    "macosx64": {"task_id": "xyz"},
                    "win32": {"task_id": "xyy"}
                }
            },
        })

        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)
示例#29
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": {"task_id": "abc"},
                    "win32": {"task_id": "def"},
                    "win64": {"task_id": "jgh"},
                    "linux": {"task_id": "ijk"},
                    "linux64": {"task_id": "lmn"},
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_publish_balrog")
 def test_taskid_in_command(self):
     for platform, task in self.tasks.iteritems():
         l10n_artifact_task = get_task_by_name(
             self.graph, "release-mozilla-beta_firefox_{}_l10n_repack_artifacts_1".format(platform)
         )
         command = task["task"]["payload"]["command"]
         self.assertTrue("--taskid {}".format(l10n_artifact_task["taskId"]) in "".join(command))
示例#31
0
    def test_signing_manifests(self):
        for p in ("win32", "macosx64"):
            for v in ("38.0build1", "37.0build2"):
                generator = get_task_by_name(self.graph, "{}_en-US_{}_funsize_update_generator".format(p, v))
                signing = get_task_by_name(self.graph, "{}_en-US_{}_funsize_signing_task".format(p, v))
                balrog = get_task_by_name(self.graph, "{}_en-US_{}_funsize_balrog_task".format(p, v))

                self.assertIsNone(generator["task"].get("scopes"))
                self.assertItemsEqual(signing["task"]["scopes"],
                                      ["project:releng:signing:cert:release-signing",
                                       "project:releng:signing:format:mar",
                                       "project:releng:signing:format:gpg"])
                self.assertIsNotNone(balrog["task"].get("scopes"))
                self.assertEqual(
                    signing["task"]["payload"]["signingManifest"],
                    "https://queue.taskcluster.net/v1/task/%s/artifacts/public/env/manifest.json" % generator["taskId"])
    def generate_command_requirements_validator(self, platform):
        l10n_artifact_task = get_task_by_name(
            self.graph,
            "release-mozilla-beta_firefox_{}_l10n_repack_artifacts_1".format(platform)
        )

        task_id = l10n_artifact_task['taskId']

        @truth
        def verify_command_requirements(task):
            command = ''.join(task['task']['payload']['command'])
            required_elements = (
                "--app-version 42.0",
                "--locale de --locale en-GB --locale zh-TW",
                "--bucket fake_bucket",
                "--taskid {}".format(task_id),
                "--platform {}".format(buildbot2ftp(platform)),
                "--version 42.0b2",
            )

            for element in required_elements:
                if element not in command:
                    return False
            else:
                return True

        return verify_command_requirements
    def generate_dependency_validator(self):
        requires = [get_task_by_name(self.graph, t)['taskId'] for t in self.upstream_dependencies]

        @truth
        def validate_partner_repack_dependencies(task):
            return sorted(task['requires']) == sorted(requires)

        return validate_partner_repack_dependencies
    def generate_not_required_validator(self):
        push_to_mirrors = get_task_by_name(self.graph, "release-foo_firefox_push_to_releases")

        @truth
        def validate_not_required_dependencies(task):
            return task['taskId'] not in push_to_mirrors['requires']

        return validate_not_required_dependencies
示例#35
0
    def generate_task_dependency_validator(self):
        tmpl = "release-foo_firefox_{}_complete_en-US_beetmover_candidates"
        requires = [get_task_by_name(self.graph, tmpl.format(p))["taskId"] for p in ("linux", "linux64", "macosx64", "win32", "win64",)]

        @truth
        def validate_task_dependencies(task):
            return sorted(task['requires']) == sorted(requires)

        return validate_task_dependencies
示例#36
0
    def test_partials_present(self):
        for pl in ["win32", "linux64"]:
            for part in ["37.0", "38.0"]:
                task_name = "release-mozilla-beta_firefox_{pl}_l10n_repack_1_{part}_update_generator".format(
                    pl=pl, part=part)
                partial_task = get_task_by_name(self.graph, task_name)

                verify(partial_task, Schema(
                    dict))  # The task must exist as a dict (ie not None)
示例#37
0
    def generate_task_dependency_validator(self):
        tmpl = "release-foo_firefox_{p}_complete_en-US_beetmover_candidates"
        tmpl_partials = "release-foo_firefox_{p}_partial_en-US_{v}build{b}_beetmover_candidates"
        requires = [
            get_task_by_name(self.graph, tmpl.format(p=p))["taskId"]
            for p in ("linux64", "macosx64", "win64")
        ] + [
            get_task_by_name(self.graph, tmpl_partials.format(p=p, v=v,
                                                              b=b))["taskId"]
            for p in ("linux64", "macosx64", "win64")
            for v, b in [("37.0", 2), ("38.0", 1)]
        ]

        @truth
        def validate_dependencies(task):
            return sorted(task['requires']) == sorted(requires)

        return validate_dependencies
示例#38
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'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        "task_id": "xyz"
                    },
                    "win32": {
                        "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")
示例#39
0
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={
                "queue:task-priority:high",
                "queue:define-task:aws-provisioner-v1/opt-linux64",
                "queue:create-task:aws-provisioner-v1/opt-linux64",
            })
        }, required=True, extra=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'opt-linux64',
            }
        }, 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,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'partner_repacks_platforms': ['win32', 'macosx64'],
            '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.task_schema = Schema({
            'task': {
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'opt-linux64',
                '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,
            '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')
            ),
        }
示例#41
0
    def generate_task_requires_validator(self):
        requires_sorted = sorted([
            get_task_by_name(self.graph,
                             "publish_release_human_decision")["taskId"]
        ])

        @truth
        def validate_task_requires(task):
            return sorted(task['requires']) == requires_sorted

        return validate_task_requires
    def generate_task_dependency_validator(self):
        requires = sorted([
            get_task_by_name(self.graph,
                             "release-foo_firefox_push_to_releases")["taskId"]
        ])

        @truth
        def validate_task_dependencies(task):
            return sorted(requires) == sorted(task['requires'])

        return validate_task_dependencies
    def generate_task_dependency_validator(self):
        requires = [
            get_task_by_name(self.graph,
                             "release-foo-firefox_uptake_monitoring")["taskId"]
        ]

        @truth
        def validate_dependencies(task):
            return sorted(task['requires']) == sorted(requires)

        return validate_dependencies
    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,
            'en_US_config': {
                "platforms": {
                    "macosx64": {},
                    "win32": {},
                    "win64": {},
                    "linux": {},
                    "linux64": {},
                }
            },
        })

        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',
            )
        ]
示例#45
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": {
                        "task_id": "abc"
                    },
                    "win32": {
                        "task_id": "def"
                    },
                    "win64": {
                        "task_id": "jgh"
                    },
                    "linux": {
                        "task_id": "ijk"
                    },
                    "linux64": {
                        "task_id": "lmn"
                    },
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-firefox_publish_balrog")
 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,
         'enUS_platforms': ["win32", "macosx64"],
         'final_verify_platforms': ["macosx64", "win32"],
         'release_channels': ['beta'],
         'final_verify_channels': ['beta'],
         'en_US_config': {
             "platforms": {
                 "macosx64": {
                     "task_id": "xyz"
                 },
                 "win32": {
                     "task_id": "xyy"
                 }
             }
         },
         'l10n_config': {
             "platforms": {
                 "win32": {
                     "en_us_binary_url":
                     "https://queue.taskcluster.net/something/firefox.exe",
                     "locales": ["de", "en-GB", "zh-TW"],
                     "chunks": 1,
                 },
                 "macosx64": {
                     "en_us_binary_url":
                     "https://queue.taskcluster.net/something/firefox.tar.xz",
                     "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")
    def generate_command_requirements_validator(self, platform):
        # Command requirements for win32
        if platform == 'win32':
            buildername = "win32_en-US_38.0build1_funsize_signing_task"
            funsize_artifact = get_task_by_name(self.graph, buildername)

            required_elements = (
                "--partial-version 38.0",
                "--locale en-US",
                "--taskid {}".format(funsize_artifact['taskId']),
                "--platform {}".format(buildbot2ftp(platform)),
                "--version 42.0b2",
            )

        # Command requirements for macosx64
        elif platform == 'macosx64':
            buildername = "macosx64_en-US_37.0build2_funsize_signing_task"
            funsize_artifact = get_task_by_name(self.graph, buildername)

            required_elements = (
                "--partial-version 37.0",
                "--locale en-US",
                "--taskid {}".format(funsize_artifact['taskId']),
                "--platform {}".format(buildbot2ftp(platform)),
                "--version 42.0b2",
            )

        @truth
        def verify_command_requirements(task):
            command = ''.join(task['task']['payload']['command'])
            for element in required_elements:
                if element not in command:
                    return False
            else:
                return True

        return verify_command_requirements
示例#48
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,
            'release_channels': ['foo'],
            'final_verify_channels': ['foo'],
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        "task_id": "abc"
                    },
                    "win64": {
                        "task_id": "jgh"
                    },
                    "linux64": {
                        "task_id": "lmn"
                    },
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_chcksms")
    def test_multichannel(self):
        for chan in ["beta", "release"]:
            multichan_schema = Schema({
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'VERIFY_CONFIG': "{chan}-firefox-win32.cfg".format(chan=chan),
                        }
                    }
                }
            }, extra=True, required=True)

            multichan_task = get_task_by_name(self.graph, "release-beta_firefox_win32_update_verify_{chan}_3".format(chan=chan))
            verify(multichan_task, multichan_schema, TestBB_UpdateVerifyMultiChannel.not_allowed)
示例#50
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,
            'en_US_config': {
                "platforms": {
                    "macosx64": {
                        "task_id": "xyz"
                    },
                    "win32": {
                        "task_id": "xyy"
                    }
                }
            },
        })

        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': '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")
示例#52
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,
            'en_US_config': {
                'platforms': {
                    'macosx64': {'task_id': 'abc'},
                    'win32': {'task_id': 'def'},
                    'win64': {'task_id': 'ghi'},
                    'linux': {'task_id': 'jkl'},
                    'linux64': {'task_id': 'mno'},
                }
            }
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-firefox_updates")
示例#53
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,
            'release_channels': ['beta', 'release'],
            'final_verify_channels': ['beta', 'release'],
            'partner_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"))