Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions browser/config/mozconfigs/win64-aarch64/nightly-enterprise
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
. "$topsrcdir/build/mozconfig.win-common"
. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt"

ac_add_options --enable-enterprise

. "$topsrcdir/build/mozconfig.common.override"
11 changes: 10 additions & 1 deletion python/mozbuild/mozbuild/mach_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -3015,7 +3015,15 @@ def repackage_msi(
@CommandArgument(
"--channel",
type=str,
choices=["official", "beta", "esr", "aurora", "nightly", "unofficial"],
choices=[
"official",
"beta",
"esr",
"aurora",
"nightly",
"unofficial",
"firefoxenterprise",
],
help="Release channel.",
)
@CommandArgument(
Expand Down Expand Up @@ -3120,6 +3128,7 @@ def repackage_msix(
"beta": "beta",
"aurora": "aurora",
"nightly": "nightly",
"firefoxenterprise": "firefoxenterprise",
}

if not input:
Expand Down
1 change: 1 addition & 0 deletions python/mozbuild/mozbuild/repackaging/msix.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,7 @@ def repackage_msix(
"aurora",
"nightly",
"unofficial",
"firefoxenterprise",
):
raise Exception(f"channel is unrecognized: {channel}")

Expand Down
2 changes: 2 additions & 0 deletions taskcluster/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,9 @@ treeherder:
'Rpk-Ent': 'Enterprise repacks'
'Rpk': 'Classic repacks'
'MSI-Ent': "MSI Enterprise repacks"
'MSIX-Ent': "MSIX Enterprise repacks"
'MSIs-Ent': "MSI signed Enterprise repacks"
'MSIXs-Ent': "MSIX signed Enterprise repacks"
'BMS-Ent': "Mac signing for Enterprise repacks"
'BMN-Ent': "Mac notarization for Enterprise repacks"

Expand Down
16 changes: 12 additions & 4 deletions taskcluster/gecko_taskgraph/decision.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,17 @@
},
},
},
"repackage-msix": {
"sample": {
"gcpEU": {
"locales": ["en-US"],
"platforms": [
"win64-enterprise-shippable",
"win64-aarch64-enterprise-shippable",
],
},
},
},
"enterprise-repack-repackage": {
"sample": {
"gcpEU": {
Expand All @@ -152,6 +163,7 @@
"linux64-aarch64-enterprise-shippable",
"macosx64-enterprise-shippable",
"win64-enterprise-shippable",
"win64-aarch64-enterprise-shippable",
],
},
},
Expand All @@ -161,9 +173,7 @@
"gcpEU": {
"locales": ["en-US"],
"platforms": [
"linux64-enterprise-shippable",
"macosx64-enterprise-shippable",
"win64-enterprise-shippable",
],
},
},
Expand All @@ -173,8 +183,6 @@
"gcpEU": {
"locales": ["en-US"],
"platforms": [
"linux64-enterprise-shippable",
"macosx64-enterprise-shippable",
"win64-enterprise-shippable",
],
},
Expand Down
6 changes: 3 additions & 3 deletions taskcluster/gecko_taskgraph/target_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,9 +501,9 @@ def filter(task):
build_type = task.attributes.get("build_type")
shippable = task.attributes.get("shippable", False)

level = int(parameters["level"])
if ("shippable" in task.label or shippable) and level < 3:
return False
#level = int(parameters["level"])
#if ("shippable" in task.label or shippable) and level < 3:
# return False

if task.kind == "enterprise-test":
return True
Expand Down
6 changes: 5 additions & 1 deletion taskcluster/gecko_taskgraph/transforms/partner_repack.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,11 @@ def add_command_arguments(config, tasks):
task["attributes"]["build_platform"],
),
)
platform = task["attributes"]["build_platform"].partition("-shippable")[0]
platform = (
task["attributes"]["build_platform"]
.partition("-shippable")[0]
.partition("-enterprise")[0]
)
task["run"]["options"] = [
"version={}".format(release_config["version"]),
"build-number={}".format(release_config["build_number"]),
Expand Down
67 changes: 47 additions & 20 deletions taskcluster/gecko_taskgraph/transforms/repackage.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,11 +528,17 @@ def make_job_description(config, jobs):
if not dep_th_platform and "enterprise-repack-repackage" in dep_job.kind:
build_platform = attributes.get("build_platform")
if "linux64" in build_platform:
dep_th_platform = "linux64-enterprise/opt"
if "aarch64" in build_platform:
dep_th_platform = "linux64-aarch64-enterprise/opt"
else:
dep_th_platform = "linux64-enterprise/opt"
elif "macosx64" in build_platform:
dep_th_platform = "osx-cross-enterprise/opt"
elif "win64" in build_platform:
dep_th_platform = "windows2012-64-enterprise/opt"
if "aarch64" in build_platform:
dep_th_platform = "windows2012-aarch64-enterprise/opt"
else:
dep_th_platform = "windows2012-64-enterprise/opt"
else:
raise ValueError(f"Unsupported {build_platform}")

Expand Down Expand Up @@ -566,10 +572,16 @@ def make_job_description(config, jobs):
elif config.kind == "repackage-msix":
assert not locale

# Like "MSIXs(Bs)".
treeherder["symbol"] = "MSIX({})".format(
dep_job.task.get("extra", {}).get("treeherder", {}).get("symbol", "B")
)
if "enterprise-repack" in dep_job.label:
repack_id = dep_job.task.get("extra").get("repack_id")
treeherder["symbol"] = f"MSIX-Ent({repack_id})"
else:
# Like "MSIXs(Bs)".
treeherder["symbol"] = "MSIX({})".format(
dep_job.task.get("extra", {})
.get("treeherder", {})
.get("symbol", "B")
)

elif config.kind == "repackage-shippable-l10n-msix":
assert not locale
Expand Down Expand Up @@ -862,6 +874,7 @@ def make_job_description(config, jobs):
locale=locale,
existing_fetch=task["fetches"],
enterprise_repack=repack,
repack_label=repack_task["label"],
)

yield repack_task
Expand All @@ -876,6 +889,7 @@ def _generate_download_config(
locale=None,
existing_fetch=None,
enterprise_repack=None,
repack_label=None
):
locale_path = f"{locale}/" if locale else ""
fetch = {}
Expand All @@ -885,11 +899,7 @@ def _generate_download_config(
if enterprise_repack:
locale_path = f"{enterprise_repack}/"

if repackage_signing_task and build_platform.startswith("win"):
fetch.update({
repackage_signing_task: [f"{locale_path}target.installer.exe"],
})
elif build_platform.startswith("linux") or build_platform.startswith("macosx"):
if build_platform.startswith("linux") or build_platform.startswith("macosx"):
signing_fetch = [
{
"artifact": f"{locale_path}target{archive_format(build_platform)}",
Expand All @@ -903,15 +913,32 @@ def _generate_download_config(
})
fetch.update({signing_task: signing_fetch})
elif build_platform.startswith("win"):
fetch.update({
signing_task: [
{
"artifact": f"{locale_path}target.zip",
"extract": False,
},
f"{locale_path}setup.exe",
],
})
if repackage_signing_task and build_platform.startswith("win"):
if "-msi-" in repack_label:
fetch.update({
repackage_signing_task: [f"{locale_path}target.installer.exe"],
})
elif "-msix-" in repack_label:
fetch.update({
repackage_signing_task: [
{
"artifact": f"{locale_path}target.zip",
"extract": False,
}
],
})
else:
raise NotImplementedError(f"Unsupported enterprise repack {task.label}")
else:
fetch.update({
signing_task: [
{
"artifact": f"{locale_path}target.zip",
"extract": False,
},
f"{locale_path}setup.exe",
],
})

use_stub = task.attributes.get("stub-installer")
if use_stub:
Expand Down
10 changes: 8 additions & 2 deletions taskcluster/gecko_taskgraph/transforms/repackage_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,11 +238,17 @@ def make_job_description(config, jobs):
.replace("shippable", "")
)
if "linux64" in platform:
th_platform = "linux64-enterprise/opt"
if "aarch64" in platform:
th_platform = "linux64-aarch64-enterprise/opt"
else:
th_platform = "linux64-enterprise/opt"
elif "macosx64" in platform:
th_platform = "osx-cross-enterprise/opt"
elif "win64" in platform:
th_platform = "windows2012-64-enterprise/opt"
if "aarch64" in platform:
th_platform = "windows2012-aarch64-enterprise/opt"
else:
th_platform = "windows2012-64-enterprise/opt"
else:
raise ValueError(f"Unsupported {platform}")

Expand Down
17 changes: 16 additions & 1 deletion taskcluster/gecko_taskgraph/transforms/repackage_signing.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,22 @@ def make_repackage_signing_description(config, jobs):
dep_symbol = dep_job.task.get("extra").get("treeherder").get("symbol")
treeherder["symbol"] = f"MSIs-Ent({dep_symbol})"
else:
treeherder["symbol"] = "MSIs({})".format(locale or "N")
treeherder["symbol"] = "MSIs({})".format(
dep_job.task.get("extra", {})
.get("treeherder", {})
.get("symbol", "B")
)

if config.kind == "repackage-signing-msix":
if "enterprise-repack" in dep_job.label:
dep_symbol = dep_job.task.get("extra").get("treeherder").get("symbol")
treeherder["symbol"] = f"MSIXs-Ent({dep_symbol})"
else:
treeherder["symbol"] = "MSIXs({})".format(
dep_job.task.get("extra", {})
.get("treeherder", {})
.get("symbol", "B")
)

elif config.kind in (
"repackage-signing-msix",
Expand Down
24 changes: 24 additions & 0 deletions taskcluster/gecko_taskgraph/util/verify.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,30 @@ def has_one_route_with(what):
f"The following task has a route with invalid index `{task.label}`: {route}"
)

@verifications.add("full_task_graph")
def verify_no_shippable_enterprise(
task, taskgraph, scratch_pad, graph_config, parameters
):
"""
This function ensures that enterprise tasks for PR (level 1) are not shippable
"""
return

if not task or not "enterprise" in task.label or task.label.endswith("/debug"):
return

level = int(parameters["level"])

if level not in [1, 3]:
raise Exception(f"Unexpected level `{level}` for task `{task.label}`")

is_shippable = task.attributes.get("shippable", False)

if level == 1:
if is_shippable or "shippable" in task.label:
raise Exception(f"Unexpected shippable status for task of level `{level}` `{task.label}`: {is_shippable}")



@verifications.add("full_task_graph")
def verify_routes_notification_filters(
Expand Down
1 change: 1 addition & 0 deletions taskcluster/kinds/beetmover-geckoview/kind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ not-for-build-platforms:
- win64-enterprise/opt
- win64-enterprise-shippable/opt
- win64-aarch64-shippable/opt
- win64-aarch64-enterprise-shippable/opt
- win64-nightlyasrelease/opt
- linux64-devedition/opt
- linux64-aarch64-devedition/opt
Expand Down
56 changes: 56 additions & 0 deletions taskcluster/kinds/build/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,62 @@ win64-enterprise/opt:
fetch:
- upx-3.95-win

win64-aarch64-enterprise-shippable/opt:
description: "AArch64 Win64 Enterprise Shippable"
use-pgo: win64-shippable/opt
index:
product: firefox
job-name: win64-aarch64-enterprise-shippable-opt
type: shippable
attributes:
shippable: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: firefox
treeherder:
platform: windows2012-aarch64-enterprise-shippable/opt
symbol: Bpgo(Bent)
tier: 1
run-on-projects: ["enterprise-firefox"]
run-on-repo-type: ["git"]
worker-type: b-linux-docker-xlarge-amd
worker:
max-run-time: 10800
env:
PERFHERDER_EXTRA_OPTIONS: enterprise
MOZ_AUTOMATION_PACKAGE_TESTS: "1"
run:
actions: [get-secrets, build]
options: [append-env-variables-from-configs]
script: mozharness/scripts/fx_desktop_build.py
secrets: true
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
extra-config:
stage_platform: win64-aarch64
mozconfig_platform: win64-aarch64
max_build_output_timeout: 3600
fetches:
toolchain:
- linux64-clang
- linux64-rust-cross
- linux64-rust-size
- linux64-nasm
- linux64-node
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi
- vs
- dxc-aarch64-pc-windows-msvc
- winappsdk-aarch64-pc-windows-msvc
fetch:
- upx-3.95-win

win64-plain/opt:
description: "Win64 Opt Plain"
index:
Expand Down
5 changes: 5 additions & 0 deletions taskcluster/kinds/enterprise-repack-repackage/kind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ kind-dependencies:
only-for-build-platforms:
- macosx64-enterprise-shippable/opt
- win64-enterprise-shippable/opt
- win64-aarch64-enterprise-shippable/opt

tasks:
enterprise-repack-repackage:
Expand All @@ -44,6 +45,10 @@ tasks:
- repackage/base.py
- repackage/win32_sfx_stub.py
- repackage/win64_partner.py
win64-aarch64\b.*:
- repackage/base.py
- repackage/win64-aarch64_sfx_stub.py
- repackage/win64_signed.py
linux64.*:
- repackage/base.py
package-formats:
Expand Down
Loading