diff --git a/browser/config/mozconfigs/win32/debug-msvc b/browser/config/mozconfigs/win32/debug-msvc new file mode 100644 index 000000000000..beed950a4fd3 --- /dev/null +++ b/browser/config/mozconfigs/win32/debug-msvc @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/win32/debug" + +export CC="cl.exe" +export CXX="cl.exe" +export LINKER="link.exe" diff --git a/browser/config/mozconfigs/win32/opt-msvc b/browser/config/mozconfigs/win32/opt-msvc new file mode 100644 index 000000000000..0662d443ff15 --- /dev/null +++ b/browser/config/mozconfigs/win32/opt-msvc @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/win32/nightly" + +export CC="cl.exe" +export CXX="cl.exe" +export LINKER="link.exe" diff --git a/browser/config/mozconfigs/win64/debug-msvc b/browser/config/mozconfigs/win64/debug-msvc new file mode 100644 index 000000000000..56d79fdd69d8 --- /dev/null +++ b/browser/config/mozconfigs/win64/debug-msvc @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/debug" + +export CC="cl.exe" +export CXX="cl.exe" +export LINKER="link.exe" diff --git a/browser/config/mozconfigs/win64/opt-msvc b/browser/config/mozconfigs/win64/opt-msvc new file mode 100644 index 000000000000..0ae70dc8e881 --- /dev/null +++ b/browser/config/mozconfigs/win64/opt-msvc @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/nightly" + +export CC="cl.exe" +export CXX="cl.exe" +export LINKER="link.exe" diff --git a/taskcluster/ci/build/windows.yml b/taskcluster/ci/build/windows.yml index f15f187ef2dc..9e747a1a2241 100755 --- a/taskcluster/ci/build/windows.yml +++ b/taskcluster/ci/build/windows.yml @@ -765,6 +765,134 @@ win32-mingw32/opt: - linux64-mingw32-nsis - linux64-mingw32-fxc2 +win32-msvc/debug: + description: "Win32 MSVC Debug" + index: + product: firefox + job-name: win32-msvc-debug + treeherder: + platform: windows2012-32/debug + symbol: Bmsvc + tier: 2 + worker-type: aws-provisioner-v1/gecko-{level}-b-win2012 + worker: + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: msvc + run: + using: mozharness + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win32.py + - builds/taskcluster_sub_win32/debug.py + extra-config: + mozconfig_variant: 'debug-msvc' + run-on-projects: ['mozilla-central'] + toolchains: + - win64-clang-cl + - win64-rust + - win64-sccache + +win32-msvc/opt: + description: "Win32 MSVC Opt" + index: + product: firefox + job-name: win32-msvc-opt + treeherder: + platform: windows2012-32/opt + symbol: Bmsvc + tier: 2 + worker-type: aws-provisioner-v1/gecko-{level}-b-win2012 + worker: + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: msvc + run: + using: mozharness + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win32.py + - builds/taskcluster_sub_win32/opt.py + extra-config: + mozconfig_variant: 'opt-msvc' + run-on-projects: ['mozilla-central'] + toolchains: + - win64-clang-cl + - win64-rust + - win64-sccache + +win64-msvc/debug: + description: "Win64 MSVC Debug" + index: + product: firefox + job-name: win64-msvc-debug + treeherder: + platform: windows2012-64/debug + symbol: Bmsvc + tier: 2 + worker-type: aws-provisioner-v1/gecko-{level}-b-win2012 + worker: + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: msvc + run: + using: mozharness + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/debug.py + extra-config: + mozconfig_variant: 'debug-msvc' + run-on-projects: ['mozilla-central'] + toolchains: + - win64-clang-cl + - win64-rust + - win64-sccache + +win64-msvc/opt: + description: "Win64 MSVC Opt" + index: + product: firefox + job-name: win64-msvc-opt + treeherder: + platform: windows2012-64/opt + symbol: Bmsvc + tier: 2 + worker-type: aws-provisioner-v1/gecko-{level}-b-win2012 + worker: + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: msvc + run: + using: mozharness + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/opt.py + extra-config: + mozconfig_variant: 'opt-msvc' + run-on-projects: ['mozilla-central'] + toolchains: + - win64-clang-cl + - win64-rust + - win64-sccache + win32-mingw32/debug: description: "Win32 MinGW Debug" index: diff --git a/taskcluster/ci/test/test-platforms.yml b/taskcluster/ci/test/test-platforms.yml index e83b50510cb5..be69a0e37ee6 100644 --- a/taskcluster/ci/test/test-platforms.yml +++ b/taskcluster/ci/test/test-platforms.yml @@ -127,6 +127,12 @@ windows7-32/debug: - windows-reftest-gpu - windows-tests +windows7-32-msvc/debug: + build-platform: win32-msvc/debug + test-sets: + - windows-reftest-gpu + - windows-tests + windows7-32/opt: build-platform: win32/opt test-sets: @@ -162,6 +168,15 @@ windows7-32-devedition/opt: - windows-reftest-gpu - windows-tests +windows7-32-msvc/opt: + build-platform: win32-msvc/opt + test-sets: + - awsy + - desktop-screenshot-capture + - windows-reftest-gpu + - windows-talos + - windows-tests + # win64 windows10-64-ccov/debug: build-platform: win64-ccov/debug @@ -178,6 +193,12 @@ windows10-64/debug: - windows-tests - mochitest-headless +windows10-64-msvc/debug: + build-platform: win64-msvc/debug + test-sets: + - windows-tests + - mochitest-headless + windows10-64/opt: build-platform: win64/opt test-sets: @@ -217,6 +238,15 @@ windows10-64-asan/opt: test-sets: - common-tests +windows10-64-msvc/opt: + build-platform: win64-msvc/opt + test-sets: + - awsy + - desktop-screenshot-capture + - windows-talos + - windows-tests + - mochitest-headless + # QR builds just run a subset right now. windows10-64-qr/debug: build-platform: win64/debug diff --git a/taskcluster/taskgraph/loader/build_signing.py b/taskcluster/taskgraph/loader/build_signing.py index bb568615a022..24a6f155a5f3 100644 --- a/taskcluster/taskgraph/loader/build_signing.py +++ b/taskcluster/taskgraph/loader/build_signing.py @@ -10,7 +10,9 @@ from taskgraph.loader.single_dep import loader as base_loader # patch because it required some heavy changes in single_dep. NON_NIGHTLY_LABELS_WHICH_SHOULD_SIGN_BUILDS = ( 'build-win32/debug', 'build-win32/opt', 'build-win32/pgo', + 'build-win32-msvc/debug', 'build-win32-msvc/opt', 'build-win64/debug', 'build-win64/opt', 'build-win64/pgo', + 'build-win64-msvc/debug', 'build-win64-msvc/opt', 'build-win32-devedition/opt', 'build-win64-devedition/opt', 'build-win64-ccov/debug', 'build-linux/opt', 'build-linux64/opt', 'build-macosx64/opt', diff --git a/taskcluster/taskgraph/transforms/signing.py b/taskcluster/taskgraph/transforms/signing.py index df8b153c21bd..559f0634d2a6 100644 --- a/taskcluster/taskgraph/transforms/signing.py +++ b/taskcluster/taskgraph/transforms/signing.py @@ -110,7 +110,6 @@ def make_task_description(config, jobs): treeherder = None if 'partner' not in config.kind and 'eme-free' not in config.kind: treeherder = job.get('treeherder', {}) - treeherder.setdefault('symbol', _generate_treeherder_symbol(is_nightly, config.kind)) dep_th_platform = dep_job.task.get('extra', {}).get( 'treeherder', {}).get('machine', {}).get('platform', '') @@ -119,8 +118,16 @@ def make_task_description(config, jobs): treeherder.setdefault('platform', _generate_treeherder_platform( dep_th_platform, build_platform, build_type )) + treeherder.setdefault('symbol', _generate_treeherder_symbol( + is_nightly, build_platform + )) - treeherder.setdefault('tier', 1 if '-ccov' not in build_platform else 2) + # ccov and msvc builds are tier 2, so they cannot have tier 1 tasks + # depending on them. + if '-ccov' in build_platform or '-msvc' in build_platform: + treeherder.setdefault('tier', 2) + else: + treeherder.setdefault('tier', 1) treeherder.setdefault('kind', 'build') label = job['label'] @@ -178,8 +185,8 @@ def _generate_treeherder_platform(dep_th_platform, build_platform, build_type): return '{}/{}'.format(dep_th_platform, actual_build_type) -def _generate_treeherder_symbol(is_nightly, kind): - if is_nightly: - return 'Ns' - else: - return 'Bs' +def _generate_treeherder_symbol(is_nightly, build_platform): + symbol = 'Ns' if is_nightly else 'Bs' + if '-msvc' in build_platform: + symbol += '-msvc' + return symbol diff --git a/taskcluster/taskgraph/transforms/tests.py b/taskcluster/taskgraph/transforms/tests.py index a2a080ee7edb..9a2e0a0af944 100644 --- a/taskcluster/taskgraph/transforms/tests.py +++ b/taskcluster/taskgraph/transforms/tests.py @@ -72,6 +72,11 @@ WINDOWS_WORKER_TYPES = { 'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win7-32-gpu', 'hardware': 'releng-hardware/gecko-t-win10-64-hw', }, + 'windows7-32-msvc': { + 'virtual': 'aws-provisioner-v1/gecko-t-win7-32', + 'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win7-32-gpu', + 'hardware': 'releng-hardware/gecko-t-win10-64-hw', + }, 'windows10-64': { 'virtual': 'aws-provisioner-v1/gecko-t-win10-64', 'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu', @@ -102,6 +107,11 @@ WINDOWS_WORKER_TYPES = { 'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu', 'hardware': 'releng-hardware/gecko-t-win10-64-hw', }, + 'windows10-64-msvc': { + 'virtual': 'aws-provisioner-v1/gecko-t-win10-64', + 'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu', + 'hardware': 'releng-hardware/gecko-t-win10-64-hw', + }, 'windows10-64-qr': { 'virtual': 'aws-provisioner-v1/gecko-t-win10-64', 'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu',