This enables the following configuration on autoland/central:
> test-linux1804-64-asan/opt-web-platform-tests-print-reftest-fis-e10s
Depends on D110836
Differential Revision: https://phabricator.services.mozilla.com/D110837
This enables the following configuration on autoland/central:
> test-windows10-64-qr/debug-web-platform-tests-print-reftest-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D110836
This enables the following configuration on autoland/central:
> test-linux1804-64-asan/opt-web-platform-tests-reftest-fis-e10s
Depends on D110830
Differential Revision: https://phabricator.services.mozilla.com/D110831
This enables the following configuration on autoland/central:
> test-windows10-64-qr/debug-web-platform-tests-reftest-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D110830
This enables the following configuration on autoland/central:
> test-linux1804-64-asan/opt-web-platform-tests-crashtest-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D110828
This enables the following configuration on autoland/central:
> test-windows10-64-qr/debug-web-platform-tests-crashtest-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D110556
This adds the following configurations on central and autoland:
> test-linux1804-64-asan/opt-web-platform-tests-fis-e10s
Depends on D110553
Differential Revision: https://phabricator.services.mozilla.com/D110554
This adds the following configurations on central and autoland:
> test-windows10-64-qr/debug-web-platform-tests-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D110553
Previously the test only visited a single site.
We now capture metrics over a user journey of visiting 5 sites cold and then the same sites warm.
This gives a more representative view of performance.
Differential Revision: https://phabricator.services.mozilla.com/D110833
This patch switches us to use the WebRender platform variants for Android performance tests to be consistent with the desktop tests. With the exception of tp6m the outcome of the taskgraph should be the same, where -wr tasks are relocated to -qr platforms. For tp6m I have temporarily removed all subtest fragmentation. This will be followed by a patch that restores the scheduling of only high value tests under non-webrender.
Differential Revision: https://phabricator.services.mozilla.com/D110390
This enables the following configuration on autoland and mozilla-central:
> test-windows10-64-qr/debug-mochitest-media-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D110161
This enables the following tasks on autoland and central:
> test-linux1804-64-tsan/opt-mochitest-media-fis-e10s
Depends on D110159
Differential Revision: https://phabricator.services.mozilla.com/D110160
This enables the following tasks on autoland and central:
> test-linux1804-64-asan/opt-mochitest-media-fis-e10s
Depends on D110158
Differential Revision: https://phabricator.services.mozilla.com/D110159
These will run with webrender enabled instead. This adds the following
configurations on autoland:
> test-linux1804-64-qr/opt-mochitest-media-fis-e10s
> test-windows10-64-qr/opt-mochitest-media-fis-e10s
Depends on D110157
Differential Revision: https://phabricator.services.mozilla.com/D110158
These will run with webrender enabled instead. This removes the following tasks
on central:
< test-linux1804-64-shippable/opt-mochitest-media-fis-e10s
< test-linux1804-64/debug-mochitest-media-fis-e10s
< test-windows10-64-shippable/opt-mochitest-media-fis-e10s
It does not remove any tasks on autoland.
Differential Revision: https://phabricator.services.mozilla.com/D110157
I have manually pinned the requirements, and partials are working. We'll lose a way to auto-update our dependencies, but a) it's perma-busted, so realistically we're just losing a busted task, and b) mhentges is working on a way to auto-update pinned dependencies in-tree.
Differential Revision: https://phabricator.services.mozilla.com/D110148
This change causes a slight change in the taskgraph. Essentially it changes the
optimization for some fission raptor tasks from 'skip-unless-expanded' to
'skip-unless-backstop'. This change happened because the
'apply_raptor_tier_optimization' transform did not take 'fission-tier' into
account. Now that 'fission-tier' has merged with 'tier', these tasks are being
modified by this transform. In my view this change is a desired outcome.
Differential Revision: https://phabricator.services.mozilla.com/D109664
This change causes a slight change in the taskgraph (see phabricator for diff).
Essentially it changes the optimization for 'browsertime-tp6-firefox' tasks
from 'skip-unless-expanded' to 'skip-unless-backstop'. This change happened
because the 'apply_raptor_tier_optimization' transform did not take
'fission-tier' into account. Now that 'fission-tier' has merged with 'tier',
these tasks are being modified by this transform. In my view this change is a
desired outcome.
Differential Revision: https://phabricator.services.mozilla.com/D109662
This change causes a slight change in the taskgraph. Essentially it changes the
optimization for some fission raptor tasks from 'skip-unless-expanded' to
'skip-unless-backstop'. This change happened because the
'apply_raptor_tier_optimization' transform did not take 'fission-tier' into
account. Now that 'fission-tier' has merged with 'tier', these tasks are being
modified by this transform. In my view this change is a desired outcome.
Differential Revision: https://phabricator.services.mozilla.com/D109664
This change causes a slight change in the taskgraph (see phabricator for diff).
Essentially it changes the optimization for 'browsertime-tp6-firefox' tasks
from 'skip-unless-expanded' to 'skip-unless-backstop'. This change happened
because the 'apply_raptor_tier_optimization' transform did not take
'fission-tier' into account. Now that 'fission-tier' has merged with 'tier',
these tasks are being modified by this transform. In my view this change is a
desired outcome.
Differential Revision: https://phabricator.services.mozilla.com/D109662
To identify regressions and existing exceptions in Sentry, we tag them
with their mach release (the current base revision).
To ensure that Sentry knows the correct order of revisions, we need to
tell it about each one that lands in mozilla-central.
Differential Revision: https://phabricator.services.mozilla.com/D109681
We are deprecating the 'fission-run-on-projects' and 'fission-tier' keys in
favour of more familiar 'by-variant' keys. While the diff here might look
confusing, it's designed to produce an identical taskgraph as before. So
shouldn't cause any changes in CI.
Differential Revision: https://phabricator.services.mozilla.com/D109147
This commit adds a simple pageload test, a warm pageload of https://www.google.com.
Low-level perfstats are collected.
All platforms were included. Not running as a cron job.
The motivation is that we can now collect low-level perfStats timings and determine how useful they will be for performance work.
Differential Revision: https://phabricator.services.mozilla.com/D109072
Schedule live desktop page load for all recorded sites. Also provide fission variants for all browsertime desktop tests running on webrender platforms and moved sheriffed live page load tests into a separate job.
Differential Revision: https://phabricator.services.mozilla.com/D108959
While this will add many new tasks to the taskgraph, it makes no changes to
what actually runs in CI (via the target task graph).
Differential Revision: https://phabricator.services.mozilla.com/D108783
These tasks all vary in their 'fission-run-on-projects'. So while this looks
like more complexity in isolation, it will greatly simplify the configs (and
the diff) later on in the stack.
Differential Revision: https://phabricator.services.mozilla.com/D108681
This moves the startup tests to Tier 1 (required, because they will block a Tier 1 task), and adds them as a dependency for Balrog submission on both Nightly and Release branches.
Differential Revision: https://phabricator.services.mozilla.com/D107834
This patch enables the following tasks on mozilla-central:
> test-macosx1014-64-qr/debug-mochitest-plain-fis-e10s
> test-macosx1014-64-shippable-qr/opt-mochitest-plain-fis-e10s
> test-windows10-64-qr/debug-mochitest-plain-fis-e10s
And the following tasks on autoland:
> test-linux1804-64-qr/opt-mochitest-plain-fis-e10s
> test-macosx1014-64-qr/debug-mochitest-plain-fis-e10s
> test-macosx1014-64-qr/opt-mochitest-plain-fis-e10s
> test-windows10-64-qr/debug-mochitest-plain-fis-e10s
> test-windows10-64-qr/opt-mochitest-plain-fis-e10s
Depends on D108251
Differential Revision: https://phabricator.services.mozilla.com/D108252
This changes the taskgraph slightly for
'test-macosx1014-64-devedition-qr/opt-test-verify-fis-e10s' by removing
'integration' from its 'run-on-projects' key.
The reason is that the 'test-verify' tasks has 'built-projects-only: true'.
This key ensures that the task can only ever run when the build is already
running (so it doesn't cause builds to get pulled in).
Turns out the 'built-projects-only' feature was erroneously ignoring
'fission-run-on-projects', so this small change in behaviour is actually
desired.
Differential Revision: https://phabricator.services.mozilla.com/D108075
This means that any task that doesn't set 'fission-run-on-projects' has it
default to []. Instead I'd like tasks that omit this key to default to using
'run-on-projects' (which means we can solve this bug piece by piece rather than
try to land it all at once).
The full taskgraph of this revision is identical to the previous revision.
Differential Revision: https://phabricator.services.mozilla.com/D107963
We're retiring the worker pool these tasks currently use. Use the new 1804 pool.
Failing jobs on linux 1804 match what's failing on OS X.
Differential Revision: https://phabricator.services.mozilla.com/D108109
We don't need to run fission tests on both -qr and non-qr platforms with opt.
Remove the non-qr versions as we prefer running with webrender.
This patch removes the following tasks on mozilla-central:
-test-linux1804-64-shippable/opt-mochitest-plain-fis-e10s
-test-windows10-64-shippable/opt-mochitest-plain-fis-e10s
Depends on D108028
Differential Revision: https://phabricator.services.mozilla.com/D108029
Only mochitest-plain and mochitest-media were inheriting this (the rest didn't
have fission in their variants or had an override for this key). Since
mochitest-plain is about to diverge later on this stack, moving it into the job
definition makes it easier to read.
Differential Revision: https://phabricator.services.mozilla.com/D108028
This commit enables the following tasks on mozilla-central:
> test-linux1804-64-shippable-qr/opt-crashtest-fis-e10s
> test-windows10-64-qr/debug-crashtest-fis-e10s
> test-windows10-64-shippable-qr/opt-crashtest-fis-e10s
And the following tasks on autoland:
> test-linux1804-64-qr/opt-crashtest-fis-e10s
> test-windows10-64-qr/debug-crashtest-fis-e10s
> test-windows10-64-qr/opt-crashtest-fis-e10s
Differential Revision: https://phabricator.services.mozilla.com/D107701
When "build targets" are used, the sccache server isn't
being used/integrated properly with make.
By moving rusttests to a separate build "application",
`client.mk` is invoked normally, and sccache is happy.
* Move rusttests to a new build "application".
* Move and denormalize rusttests mozconfigs. The new rusttests
mozconfigs should expand to be mostly identical to their old
versions, except with `MOZ_AUTOMATION_*=0` and
`--enable-application=tools/rusttests`.
They will differ a bit from their old variants because some
of them originally didn't source from their
respective `$app_mozconfigs/common`.
* Modify `baseconfig.mk` to change tiers if running rusttests.
* Adjust CI config to use new "rusttests" build application.
Differential Revision: https://phabricator.services.mozilla.com/D106294
Remove duplicate OSX 10.14/10.15 jobs and run on 10.15. Also setup for proper taskgrpah configs for easier migration of unittest suites via test-sets.yml
Differential Revision: https://phabricator.services.mozilla.com/D107467
Switching linux64-ccov builds to clang from gcc in bug 1499663 uncovered some performance problems that lead to test timeouts. These are addressed in clang 12. In order to ease the starring burden on sheriffs, let's give those builds a sneak preview of clang 12 even though general builds are not yet switching over.
Differential Revision: https://phabricator.services.mozilla.com/D107104
This task gets enabled as a side effect of the last patch in this stack. This
patch preserves the status quo.
Depends on D107112
Differential Revision: https://phabricator.services.mozilla.com/D107113
These -profiling tasks are not currently running on fission. But the last patch in this stack
enables them as a side effect. This patch preserves the status quo.
Depends on D107107
Differential Revision: https://phabricator.services.mozilla.com/D107112
All the other browsertime tasks ignore non-shippable platforms except for this
one. It was causing problems for a later patch in this stack.
Differential Revision: https://phabricator.services.mozilla.com/D107107
Just adding the toolchain tasks for now. They are not yet used by anything, but bug 1693288 might be interested eventually.
As with earlier releases, clang-tidy and mingw builds are not included here, they'll be separate patches.
Differential Revision: https://phabricator.services.mozilla.com/D106554
Bug 1694775 had to get a fixup to install the rename utility, that is
not in the base Debian image for buster, while it was there for jessie.
However, we only use rename for a hack when cross-building geckodriver
for Windows, and we don't need to.
Differential Revision: https://phabricator.services.mozilla.com/D106875
As of that bug, the default docker image for toolchain builds is
deb10-toolchain-build, so setting the docker image in the task is
redundant.
Differential Revision: https://phabricator.services.mozilla.com/D106874
This adds a `mach wpt-fission-regressions` command that uses the wpt
expectation data to look for tests which have a worse result in
fission. With the `--all-json=<path>` argument it will output a JSON
file containing details of all the regressions. With the
`--untriaged=<path>` argument it will output a file containing a list
of failures that have not yet been triaged.
It also adds a try job to produce those files as artifacts whenever
wpt metadata is changed.
The actual implementation is based on reading the wpt expectation data
with sample run_info values corresponding to the configurations in
which we have fission enabled, but with the "fission" property set to
False (to get a baseline result) and True (to get a with-fission
result) and then comparing the resulting expectations.
The implemenation is pretty suboptimal performance wise since we end
up reading the metadata once per configuration i.e. 6 times, and this
is slow. It could be optimised by using the conditional metadata
backend, reading it once, and then evaluating per
configuration. However that would require a little more work and the
presumption is that this will be shortlived until fission becomes the
default configuration.
Differential Revision: https://phabricator.services.mozilla.com/D106954
This patch switches us from using the Firefox window reorder to the ffmpeg recorder because of some issues that give bad visual metrics values.
Differential Revision: https://phabricator.services.mozilla.com/D106785
Because we use sysroots, this makes no difference to the shipped builds.
This would normally allow to remove the debian8-amd64-build docker image,
but we need to keep it for the valgrind jobs for now.
Differential Revision: https://phabricator.services.mozilla.com/D106404
The mozjs_sys crate is actually responsible for all the problems
encountered with the js crate we just removed, but the sm-mozjs-crate
task that builds and runs tests for it doesn't fail because... there is
actually no test to build and run, so all it builds is a static library,
which doesn't expose all the problems that exist.
The content of this crate in mozilla-central is also outdated compared
to servo upstream.
Differential Revision: https://phabricator.services.mozilla.com/D106390
The sm-rust-bindings task that builds and runs tests for it actually only
doesn't fail by three(!) distinct happenstances of chance:
- It somehow doesn't hit a race condition that can happen, but that
attempting to change the build process for jsglue.cpp did,
- The second call to `cargo test` without `--feature debugmozjs` only
works because nothing was cleaned up from the first and the second
build uses artifacts from the first that are otherwise not there if
only running the second.
- The addition of rust code to spidermonkey (the jsrust crate in
js/src/rust) somehow didsn't cause problems in the current
configuration, but in other configurations (which fixing the second
thing above unveils) the build fails because of the multiple
definition of rust_eh_personality between the jsrust staticlib and the
rust stdlib that rustc links to test programs.
On top of all the above, the content of the crate in mozilla-central
has not received updates from upstream servo in years, and doesn't
reflect what servo actually uses.
Differential Revision: https://phabricator.services.mozilla.com/D106389
Now that all builds use sysroots, we:
- don't need to install -dev packages,
- don't need multi-arch packages,
- don't need workarounds for partial multi-arch awareness,
- however need a few packages that were installed as indirect
dependencies.
While here, we haven't really needed autoconf2.13 since bug 1663863
(except for one job, which switched in bug 1694784)
Differential Revision: https://phabricator.services.mozilla.com/D106357
Initially, they were using a debian7-amd64-build image, when linux64 were
the only 3-step PGO builds. There wasn't really a profound reason not to
use another image. Then later bug 632954 and bug 1561147 added android
and linux32, using desktop1604-test images, the test image back then,
with no rationale given as to why using different image than builds, but
there's also no reason not to use the test images.
As we're going to remove things from the build images that will probably
prevent the profiling step to run, we might as well use the test image
(now ubuntu1804-test) everywhere.
Differential Revision: https://phabricator.services.mozilla.com/D106356
We don't need the valgrind package for the valgrind.h header anymore,
because it's in the sysroot, and we only needed the package in the build
docker image because of the header. We still do need it in the valgrind
build image, because we run valgrind in the builds using that image.
The valgrind build image Dockerfile doesn't need an update because
valgrind will be pulled through the install of valgrind-dbg that already
happens there.
Differential Revision: https://phabricator.services.mozilla.com/D106355
Now that all builds are using a sysroot, they don't need a specifically
different docker image to cross-build from x86-64.
This also means we don't need to build 32-bits specific packages
anymore, so we don't need the docker image to build them either
(although in theory, we might need it if we even need to build packages
for the sysroot later on, but we'll be able to dig this out if we
actually come to that).
Subsequently, this means we don't need the debian8-i386-raw image either.
Differential Revision: https://phabricator.services.mozilla.com/D106354
While here, remove the -dev packages we have in the toolchain sysroot
and thus don't need in the docker image anymore.
Two exceptions: gcc and binutils need to stay on the older docker image,
at least for now.
Differential Revision: https://phabricator.services.mozilla.com/D106325
While not strictly necessary for CI on the longer term (because builds
will also run on a newer docker image soon), for transition purposes, we
need the toolchain to keep running on old systems.
However, eventually, we'll want libdmg-hfsplus to be a local-toolchain,
so it would need to use a sysroot in the long run anyways.
Differential Revision: https://phabricator.services.mozilla.com/D106323
This patch decreases the test timeout for some Talos tests which are hitting task timeouts. It also increases the task timeout for one of the tests.
Differential Revision: https://phabricator.services.mozilla.com/D106638
It was added back when we were using Debian 7-based images, and we
were using a more recent version of Gtk than available in Debian 7 in
the normal Firefox build. We've since upgraded to Debian 8 and removed
the difference.
Differential Revision: https://phabricator.services.mozilla.com/D106055
We don't hook it yet because `mach bootstrap` aborts early on arm64 right
now. And mach static analysis commands don't have enough information to
get the native toolchain.
Differential Revision: https://phabricator.services.mozilla.com/D105595
This will allow to upgrade the underlying docker image independently.
The resulting binary has been verified to be identical bit for bit.
Differential Revision: https://phabricator.services.mozilla.com/D105714
This patch enables browsertime pageload tests on windows and also modifies some crons to run the pageload tests through browsertime rather than raptor.
Differential Revision: https://phabricator.services.mozilla.com/D105352
Let's start with this one, since it's not shipped. This allows to remove
the corresponding docker image that was only used for this job.
Differential Revision: https://phabricator.services.mozilla.com/D105597
We introduced MOZ_LOW_PARALLELISM_BUILD as a workaround when we migrated to gcp for some gcc builds. Since we switched to clang 11 for some of them, it can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D105598
As far as I can tell, we don't use zstandard from python2. As the last
version supporting python2 is 0.14.1, drop installing the python2
version.
Differential Revision: https://phabricator.services.mozilla.com/D105075