Ejemplo n.º 1
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")
Ejemplo n.º 2
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")
Ejemplo n.º 3
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_fennec_test_args({
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "android-4-0-armv7-api15": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyx"
                    },
                    "android-4-2-x86": {
                        "unsigned_task_id": "xyz",
                        "signed_task_id": "xyz"
                    },
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
Ejemplo n.º 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)
Ejemplo n.º 5
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")
Ejemplo n.º 6
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",
                    })
            },
            extra=True,
            required=True)

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

        self.human_task_schema = Schema(None)

        test_kwargs = create_fennec_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': ['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", "fennec"))
        self.human_task = get_task_by_name(self.graph, self.human_task_name)
Ejemplo n.º 7
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")
Ejemplo n.º 8
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',
                        }
                    }
                }
            },
            extra=True,
            required=True)

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

        test_kwargs = create_fennec_test_args({
            'push_to_releases_enabled':
            True,
            '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": {
                    "android-4-0-armv7-api15": {},
                    "android-4-2-x86": {},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-fennec_mark_as_shipped")
        self.push_to_mirrors = get_task_by_name(
            self.graph, "release-foo-fennec_push_to_releases")
Ejemplo n.º 9
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")
Ejemplo n.º 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": "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")
    def setUp(self):
        self.graph_schema = Schema({
            'scopes': generate_scope_validator(scopes={'queue:task-priority:high'}),
        }, required=True, extra=True)

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

        self.uptake_monitoring_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge'
            }
        }, extra=True, required=True)

        self.task_schema = Schema({
            'task': {
                'provisionerId': 'buildbot-bridge',
                'workerType': 'buildbot-bridge',
                'payload': {
                    'properties': {
                        'product': 'fennec',
                        '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_fennec_test_args({
            'push_to_releases_enabled': True,
            'postrelease_bouncer_aliases_enabled': True,
            'release_channels': ['foo'],
            'signing_pvt_key': PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "android-4-0-armv7-api15": {"task_id": "abc"},
                    "android-4-2-x86": {"task_id": "def"},
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-fennec_bouncer_aliases")
        self.push_to_mirrors = get_task_by_name(self.graph, "release-foo-fennec_push_to_releases")
        self.uptake_monitoring = get_task_by_name(self.graph, "release-foo-fennec_uptake_monitoring")
Ejemplo n.º 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': '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',
            )
        ]
Ejemplo n.º 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': {
                '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")
Ejemplo n.º 14
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")
Ejemplo n.º 15
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 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':
            EN_US_CONFIG,
        })
        self.graph = make_task_graph(**test_args)
        self.task = get_task_by_name(self.graph, "foo_final_verify")
Ejemplo n.º 17
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")
    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)
Ejemplo n.º 19
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")
class BaseTestBeetmoverCandidates(object):

    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',
        })
    }, extra=True, required=True)

    def test_common_assertions(self):
        do_common_assertions(self.graph)

    @staticmethod
    @truth
    def not_allowed(task):
        return 'scopes' not in task
Ejemplo n.º 21
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")
Ejemplo n.º 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': {
                        'next_version': '42.0b3',
                        'repo_path': 'releases/foo',
                        'script_repo_revision': 'abcd',
                    }
                }
            }
        }, extra=True, required=True)

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

        test_kwargs = create_fennec_test_args({
            'push_to_releases_enabled': True,
            '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": {
                    "android-4-0-armv7-api15": {"task_id": "abc"},
                    "android-4-2-x86": {"task_id": "def"},
                }
            },
        })
        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph, "release-foo-fennec_version_bump")
        self.push_to_mirrors = get_task_by_name(self.graph, "release-foo-fennec_push_to_releases")
Ejemplo n.º 23
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")
Ejemplo n.º 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': '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',)]
Ejemplo n.º 27
0
    def setUp(self):
        self.graph_schema = Schema(
            {
                'scopes':
                generate_scope_validator(scopes={'queue:task-priority:high'}),
            },
            required=True,
            extra=True)

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

        self.uptake_monitoring_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge'
                }
            },
            extra=True,
            required=True)

        self.task_schema = Schema(
            {
                'task': {
                    'provisionerId': 'buildbot-bridge',
                    'workerType': 'buildbot-bridge',
                    'payload': {
                        'properties': {
                            'product':
                            'fennec',
                            '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_fennec_test_args({
            'push_to_releases_enabled':
            True,
            'postrelease_bouncer_aliases_enabled':
            True,
            'release_channels': ['foo'],
            'signing_pvt_key':
            PVT_KEY_FILE,
            'en_US_config': {
                "platforms": {
                    "android-4-0-armv7-api15": {
                        "task_id": "abc"
                    },
                    "android-4-2-x86": {
                        "task_id": "def"
                    },
                }
            },
        })

        self.graph = make_task_graph(**test_kwargs)
        self.task = get_task_by_name(self.graph,
                                     "release-foo-fennec_bouncer_aliases")
        self.push_to_mirrors = get_task_by_name(
            self.graph, "release-foo-fennec_push_to_releases")
        self.uptake_monitoring = get_task_by_name(
            self.graph, "release-foo-fennec_uptake_monitoring")
Ejemplo n.º 28
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/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",
                "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/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",
                    "docker-worker:cache:build-foo-release-workspace",
                    "docker-worker:cache:tooltool-cache",
                    "docker-worker:relengapi-proxy:tooltool.download.public",
                }),
                'provisionerId': 'aws-provisioner-v1',
                'workerType': 'opt-linux64',
                '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")
Ejemplo n.º 29
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")
Ejemplo n.º 30
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")
Ejemplo n.º 31
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")
Ejemplo n.º 32
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")