示例#1
0
 def setUp(self):
     self.graph = make_task_graph(
         product="firefox",
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=True,
         en_US_config={"platforms": {
             "linux": {"task_id": "xyz"},
             "win32": {"task_id": "xyy"}
         }},
         l10n_config={},
         repo_path="releases/foo",
         revision="fedcba654321",
         branch="foo",
         updates_enabled=False,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         signing_class="release-signing",
         verifyConfigs={},
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.task_def = get_task_by_name(self.graph, "foo_source")
     self.task = self.task_def["task"]
     self.payload = self.task["payload"]
     self.signing_task_def = get_task_by_name(self.graph,
                                              "foo_source_signing")
     self.signing_task = self.signing_task_def["task"]
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         updates_enabled=False,
         bouncer_enabled=False,
         push_to_candidates_enabled=True,
         postrelease_version_bump_enabled=False,
         en_US_config=self.en_US_config,
         l10n_config=self.l10n_config,
         partial_updates={"38.0": {"buildNumber": 1}, "37.0": {"buildNumber": 2}},
         balrog_api_root="https://fake.balrog/api",
         signing_class="release-signing",
         branch="mozilla-beta",
         product="firefox",
         repo_path="releases/mozilla-beta",
         revision="abcdef123456",
         release_channels=["beta"],
         signing_pvt_key=PVT_KEY_FILE,
     )
     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"),
         ),
     }
示例#3
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"], ["signing:cert:release-signing", "signing:format:mar", "signing:format:gpg"])
                self.assertItemsEqual(balrog["task"]["scopes"], ["docker-worker:feature:balrogVPNProxy"])
示例#4
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))
示例#5
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"], ["signing:cert:release-signing", "signing:format:mar", "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"])
示例#6
0
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         en_US_config={
             "platforms": {
                 "macosx64": {},
                 "win32": {},
                 "win64": {},
                 "linux": {},
                 "linux64": {},
             }
         },
         l10n_config={},
         repo_path="releases/foo",
         revision="fedcba654321",
         branch="foo",
         updates_enabled=False,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         product="firefox",
         signing_class="release-signing",
         release_channels=["foo"],
         enUS_platforms=["linux", "linux64", "win64", "win32", "macosx64"],
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.task_def = get_task_by_name(self.graph, "foo_final_verify")
     self.task = self.task_def["task"]
     self.payload = self.task["payload"]
 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))
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         en_US_config={
             "platforms": {
                 "macosx64": {},
                 "win32": {},
                 "win64": {},
                 "linux": {},
                 "linux64": {},
             }
         },
         l10n_config={},
         repo_path="releases/foo",
         revision="fedcba654321",
         branch="foo",
         updates_enabled=False,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         product="firefox",
         signing_class="release-signing",
         release_channels=["foo"],
         enUS_platforms=["linux", "linux64", "win64", "win32", "macosx64"],
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.task_def = get_task_by_name(self.graph, "foo_final_verify")
     self.task = self.task_def["task"]
     self.payload = self.task["payload"]
 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))
示例#10
0
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         updates_enabled=True,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         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", "zh-TW"],
                     "chunks": 1,
                 },
                 "linux64": {
                     "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",
             },
         },
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
             },
             "37.0": {
                 "buildNumber": 2,
             },
         },
         balrog_api_root="https://fake.balrog/api",
         signing_class="release-signing",
         branch="mozilla-beta",
         product="firefox",
         repo_path="releases/mozilla-beta",
         revision="abcdef123456",
         release_channels=["beta"],
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.task = get_task_by_name(
         self.graph, "release-mozilla-beta_firefox_win32_l10n_repack_1")
     self.payload = self.task["task"]["payload"]
     self.properties = self.payload["properties"]
 def test_taskid_in_command(self):
     for platform, task in self.tasks.iteritems():
         if platform == "win32":
             buildername = "release-mozilla-beta_firefox_win32_l10n_repack_1_38.0_signing_task"
         else:  # macosx64
             buildername = "release-mozilla-beta_firefox_macosx64_l10n_repack_1_37.0_signing_task"
         funsize_artifact = get_task_by_name(self.graph, buildername)
         command = task['task']['payload']['command']
         self.assertTrue("--taskid {}".format(funsize_artifact['taskId']) in "".join(command))
 def test_taskid_in_command(self):
     for platform, task in self.tasks.iteritems():
         if platform == "win32":
             buildername = "win32_en-US_38.0build1_funsize_signing_task"
         else:  # macosx64
             buildername = "macosx64_en-US_37.0build2_funsize_signing_task"
         funsize_artifact = get_task_by_name(self.graph, buildername)
         command = task['task']['payload']['command']
         self.assertTrue("--taskid {}".format(funsize_artifact['taskId']) in "".join(command))
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         updates_enabled=False,
         bouncer_enabled=False,
         push_to_candidates_enabled=True,
         postrelease_version_bump_enabled=False,
         en_US_config=self.en_US_config,
         l10n_config={},
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
             },
             "37.0": {
                 "buildNumber": 2,
             },
         },
         branch="mozilla-beta",
         repo_path="releases/mozilla-beta",
         product="firefox",
         revision="abcdef123456",
         balrog_api_root="https://fake.balrog/api",
         signing_class="release-signing",
         verifyConfigs={},
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.tasks = {
         'win32': get_task_by_name(
             self.graph, "release-{}_{}_{}_complete_en-US_beetmover_candidates".format(
                 "mozilla-beta", "firefox", 'win32'
             )
         ),
         'macosx64': get_task_by_name(
             self.graph, "release-{}_{}_{}_complete_en-US_beetmover_candidates".format(
                 "mozilla-beta", "firefox", 'macosx64'
             )
         ),
     }
示例#14
0
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         en_US_config={
             "platforms": {
                 "macosx64": {},
                 "win32": {},
                 "win64": {},
                 "linux": {},
                 "linux64": {},
             }
         },
         l10n_config={},
         repo_path="releases/foo",
         product="firefox",
         revision="fedcba654321",
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
             },
             "37.0": {
                 "buildNumber": 2,
             },
         },
         branch="foo",
         updates_enabled=False,
         bouncer_enabled=True,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=True,
         signing_class="release-signing",
         release_channels=["foo"],
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.task = get_task_by_name(
         self.graph, "release-foo-firefox_version_bump")
     self.human_task = get_task_by_name(
         self.graph, "release-foo-firefox_version_bump_human_decision")
     self.payload = self.task["task"]["payload"]
 def setUp(self):
     self.graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         updates_enabled=True,
         bouncer_enabled=False,
         push_to_candidates_enabled=True,
         postrelease_version_bump_enabled=False,
         en_US_config=self.en_US_config,
         l10n_config={},
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
             },
             "37.0": {
                 "buildNumber": 2,
             },
         },
         branch="mozilla-beta",
         repo_path="releases/mozilla-beta",
         product="firefox",
         revision="abcdef123456",
         balrog_api_root="https://fake.balrog/api",
         signing_class="release-signing",
         verifyConfigs={},
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.tasks = {
         'win32': get_task_by_name(
             self.graph, "release-{}_{}_{}_partial_en-US_{}build{}_beetmover_candidates".format(
                 "mozilla-beta", "firefox", 'win32', "38.0", 1
             )
         ),
         'macosx64': get_task_by_name(
             self.graph, "release-{}_{}_{}_partial_en-US_{}build{}_beetmover_candidates".format(
                 "mozilla-beta", "firefox", 'macosx64', "37.0", 2
             )
         ),
     }
示例#16
0
    def test_mar_urls(self):
        for p in ("win32", "macosx64"):
            for v, appV in (("38.0build1", "38.0"), ("37.0build2", "37.0")):
                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))

                assert generator.get("requires") is None
                assert signing.get("requires") == [generator["taskId"]]
                assert balrog.get("requires") == [signing["taskId"]]
                if p == "win32":
                    assert generator["task"]["extra"]["funsize"]["partials"][0]["from_mar"] == \
                        "http://download.mozilla.org/?product=firefox-%s-complete&os=win&lang=en-US" % appV
                    assert generator["task"]["extra"]["funsize"]["partials"][0]["to_mar"] == \
                        "https://queue.taskcluster.net/v1/task/xyy/artifacts/public/build/firefox-42.0.en-US.win32.complete.mar"
                elif p == "macosx64":
                    assert generator["task"]["extra"]["funsize"]["partials"][0]["from_mar"] == \
                        "http://download.mozilla.org/?product=firefox-%s-complete&os=osx&lang=en-US" % appV
                    assert generator["task"]["extra"]["funsize"]["partials"][0]["to_mar"] == \
                        "https://queue.taskcluster.net/v1/task/xyz/artifacts/public/build/firefox-42.0.en-US.mac.complete.mar"
示例#17
0
 def test_encryption(self):
     graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         updates_enabled=True,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         en_US_config={
             "platforms": {
                 "macosx64": {
                     "task_id": "xyz"
                 },
                 "win32": {
                     "task_id": "xyy"
                 }
             }
         },
         l10n_config={},
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
             },
             "37.0": {
                 "buildNumber": 2,
             },
         },
         branch="mozilla-beta",
         product="firefox",
         revision="abcdef123456",
         balrog_api_root="https://fake.balrog/api",
         signing_class="dep-signing",
         release_channels=["beta"],
         signing_pvt_key=PVT_KEY_FILE,
         repo_path="foo/bar",
     )
     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))
             self.assertEqual(
                 len(balrog["task"]["payload"]["encryptedEnv"]), 2)
             self.assertTrue(
                 balrog["task"]["payload"]["encryptedEnv"][0].startswith(
                     "wcB"),
                 "Encrypted string should always start with 'wcB'")
示例#18
0
 def setUp(self):
     self.graph = make_task_graph(
         product="firefox",
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=True,
         en_US_config={
             "platforms": {
                 "linux": {
                     "task_id": "xyz"
                 },
                 "win32": {
                     "task_id": "xyy"
                 }
             }
         },
         l10n_config={},
         repo_path="releases/foo",
         revision="fedcba654321",
         branch="foo",
         updates_enabled=False,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         signing_class="release-signing",
         verifyConfigs={},
         signing_pvt_key=PVT_KEY_FILE,
     )
     self.task_def = get_task_by_name(self.graph, "foo_source")
     self.task = self.task_def["task"]
     self.payload = self.task["payload"]
     self.signing_task_def = get_task_by_name(self.graph,
                                              "foo_source_signing")
     self.signing_task = self.signing_task_def["task"]
 def test_multichannel(self):
     for chan in ["beta", "release"]:
         task_def = get_task_by_name(
             self.graph, "{chan}_final_verify".format(chan=chan))
         task = task_def["task"]
         payload = task["payload"]
         self.assertEqual(task["provisionerId"], "aws-provisioner-v1")
         self.assertEqual(task["workerType"], "b2gtest")
         self.assertFalse("scopes" in task)
         # XXX: Change the image name once it's in-tree.
         self.assertTrue(payload["image"].startswith("rail/python-test-runner"))
         self.assertFalse("cache" in payload)
         self.assertFalse("artifacts" in payload)
         self.assertTrue("env" in payload)
         self.assertTrue("command" in payload)
示例#20
0
 def test_multichannel(self):
     for chan in ["beta", "release"]:
         task_def = get_task_by_name(
             self.graph, "{chan}_final_verify".format(chan=chan))
         task = task_def["task"]
         payload = task["payload"]
         self.assertEqual(task["provisionerId"], "aws-provisioner-v1")
         self.assertEqual(task["workerType"], "b2gtest")
         self.assertFalse("scopes" in task)
         # XXX: Change the image name once it's in-tree.
         self.assertTrue(
             payload["image"].startswith("rail/python-test-runner"))
         self.assertFalse("cache" in payload)
         self.assertFalse("artifacts" in payload)
         self.assertTrue("env" in payload)
         self.assertTrue("command" in payload)
示例#21
0
 def test_encryption(self):
     graph = make_task_graph(
         version="42.0b2",
         next_version="42.0b3",
         appVersion="42.0",
         buildNumber=3,
         source_enabled=False,
         updates_enabled=True,
         bouncer_enabled=False,
         push_to_candidates_enabled=False,
         postrelease_version_bump_enabled=False,
         en_US_config={"platforms": {
             "macosx64": {"task_id": "xyz"},
             "win32": {"task_id": "xyy"}
         }},
         l10n_config={},
         partial_updates={
             "38.0": {
                 "buildNumber": 1,
             },
             "37.0": {
                 "buildNumber": 2,
             },
         },
         branch="mozilla-beta",
         product="firefox",
         revision="abcdef123456",
         balrog_api_root="https://fake.balrog/api",
         signing_class="dep-signing",
         release_channels=["beta"],
         signing_pvt_key=PVT_KEY_FILE,
         repo_path="foo/bar",
     )
     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))
             self.assertEqual(len(balrog["task"]["payload"]["encryptedEnv"]), 2)
             self.assertTrue(
                 balrog["task"]["payload"]["encryptedEnv"][0].startswith("wcB"),
                 "Encrypted string should always start with 'wcB'")
示例#22
0
 def test_chunk2_artifacts_task_present(self):
     self.assertIsNotNone(
         get_task_by_name(
             self.graph,
             "release-mozilla-beta_firefox_win32_l10n_repack_artifacts_2"))
示例#23
0
 def test_artifacts_task_only_one_chunk_1(self):
     self.assertIsNone(
         get_task_by_name(
             self.graph,
             "release-mozilla-beta_firefox_win32_l10n_repack_artifacts_0"))
示例#24
0
 def test_artifacts_task_provisioner(self):
     art_task = get_task_by_name(
         self.graph,
         "release-mozilla-beta_firefox_win32_l10n_repack_artifacts_1")
     self.assertEqual(art_task["task"]["provisionerId"], "null-provisioner")
示例#25
0
 def test_chunk1_artifacts_task_present(self):
     # make sure artifacts tasks are present
     self.assertIsNotNone(
         get_task_by_name(
             self.graph,
             "release-mozilla-beta_firefox_win32_l10n_repack_artifacts_1"))
示例#26
0
 def test_no_chunk3_artifacts(self):
     self.assertIsNone(
         get_task_by_name(
             self.graph,
             "release-mozilla-beta_firefox_win32_l10n_repack_artifacts_3"))
示例#27
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))
示例#28
0
 def test_artifacts_task_worker_type(self):
     art_task = get_task_by_name(
         self.graph,
         "release-mozilla-beta_firefox_win32_l10n_repack_artifacts_1")
     self.assertEqual(art_task["task"]["workerType"], "buildbot")