Commit Graph

30 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
583727a597 Bug 1478813 - Auto-generate ServoStyleConsts. r=xidorn,ted
Differential Revision: https://phabricator.services.mozilla.com/D2447
2018-08-17 19:48:23 +02:00
Mike Hommey
49dd99e3a3 Bug 1480631 - Switch Linux builds to clang. r=froydnj
This change switches most CI builds to clang, with a few exceptions:
- valgrind builds, until bug 1481670 is figured out.
- PGO and nightly builds, until that's fully tested.
- coverage builds, per bug 1471339 comment 17.
- base toolchain builds, to keep some builds on GCC even when we're
  fully switched to clang.
- any build that doesn't use build/unix/mozconfig.linux (e.g. probably
  all those driven by autospider.py, maybe others).
2018-08-16 10:32:33 +09:00
Daniel Varga
14af3949fc Backed out 3 changesets (bug 1480631) for failure at /home/cltbld/workspace/build/tests/talos/talos/run_tests.py
Backed out changeset ed7dba433629 (bug 1480631)
Backed out changeset dd64a5e6d4df (bug 1480631)
Backed out changeset 910a805c960d (bug 1480631)
2018-08-09 01:46:40 +03:00
Mike Hommey
6fe1432f2e Bug 1480631 - Switch Linux builds to clang. r=froydnj
This change switches most CI builds to clang, with a few exceptions:
- valgrind builds, until bug 1481670 is figured out.
- PGO and nightly builds, until that's fully tested.
- coverage builds, per bug 1471339 comment 17.
- base toolchain builds, to keep some builds on GCC even when we're
  fully switched to clang.
- any build that doesn't use build/unix/mozconfig.linux (e.g. probably
  all those driven by autospider.py, maybe others).
2018-08-09 06:08:19 +09:00
Dan Mosedale
d2201e2b26 Bug 1478995 - Add node toolchains to each automated build, r=gps
MozReview-Commit-ID: BQCAVP0nk4S

--HG--
extra : rebase_source : bcd0d3a8b26058ed3354f72d626362660bf7b5b9
2018-07-26 13:34:44 -07:00
Mike Hommey
de808cbccf Bug 1465659 - Move perfherder extra options from mozharness to taskcluster. r=nalexander
While some builds have a PERFHERDER_EXTRA_OPTIONS environment set on the
taskcluster side, many others have the equivalent set at the mozharness
level. But only the former are actually linted against, which,
unsurprisingly, translates to conflicting values between some of the
mozharness configs.

So we move those configurations to taskcluster, enable the lint on all
the kinds that look like builds (based on them using the build_attrs
transform), and adjust the values to stop conflicting. Notably, for
searchfox and static-analysis-autotest.

--HG--
extra : rebase_source : 097333608e61e1df66e5d8f914e15784f35e58f2
2018-05-31 13:02:38 +09:00
Tom Prince
89180e14a3 Bug 1429603: Don't specify balrog servers for builds; r=jlund
Differential Revision: https://phabricator.services.mozilla.com/D415

--HG--
extra : rebase_source : 7c823a0b90a26ab6a0384a185b4a68f2a30c38c8
2018-01-18 10:20:51 -07:00
Andrew Halberstadt
7d764294a7 Bug 1386857 - [ci] Remove the 'tc' treeherder group prefix from all tasks, r=dustin
There are now only a handful of buildbot jobs remaining and the concern over
outdated treeherder exclusion profiles has largely been resolved.

This does remove the tc() group from a substantial number of tasks which will
now show up as top level tasks, potentially adding clutter. In some cases, we
might want to re-add a new group (e.g group builds or compiled tests together).
However rather than try to predict the best group names for tasks I'm unfamiliar
with, I think it's best to land this as is. Then if things are looking too
cluttered at the root namespace, file follow-up bugs as needed.

MozReview-Commit-ID: 8SMwjDwAOzV

--HG--
extra : rebase_source : 2f6d89d11c139bdcd404e7537db799d0e36ee4c3
2018-01-12 15:49:58 -05:00
Mike Hommey
035f2cbe49 Bug 1426785 - Remove uses of the gtk+3 tooltool package. r=gps
It turns out that in all cases it was the last tooltool manifest entry,
so we can remove the tooltool manifests entirely, and remove all
references to them.

--HG--
extra : rebase_source : d8447b5422e63e88444008fddb76d658829694de
2017-12-22 07:54:58 +09:00
Coroiu Cristina
dbb27acb6d Backed out 5 changesets (bug 1426785) for failing repackage the nightly build on Linux a=backout.
Backed out changeset 08b5850633de (bug 1426785)
Backed out changeset 61453b6473f1 (bug 1426785)
Backed out changeset 851ce8944b41 (bug 1426785)
Backed out changeset 386cd0532519 (bug 1426785)
Backed out changeset 2a52bf9e0898 (bug 1426785)
2017-12-24 14:03:02 +02:00
Mike Hommey
370b8cf0ff Bug 1426785 - Remove uses of the gtk+3 tooltool package. r=gps
It turns out that in all cases it was the last tooltool manifest entry,
so we can remove the tooltool manifests entirely, and remove all
references to them.

--HG--
extra : rebase_source : 0aa9ef8151c2fccf62507dfecc0bc57b157772e1
2017-12-22 07:54:58 +09:00
Steve Armand
f9ec1d54e7 Bug 1414824 - Enable stricter linting in taskcluster yaml files. r=Callek
MozReview-Commit-ID: AX1cDUkwrBh

--HG--
extra : rebase_source : 4e3d0f5e4b7d1b4d2196c431ae03bc2e9b95387b
2017-11-11 00:36:41 -05:00
Tom Prince
8d12c10568 Bug 1413668: Factor out objdir configuration in mozharness. r=jlund
MozReview-Commit-ID: 14l6kxcTav5

--HG--
extra : rebase_source : b6cfbb44cf08760f84d45f454aaba5d6f9910e5f
2017-10-27 12:44:13 -06:00
Ralph Giles
a7e28bc3b1 Bug 1391427 - Package upstream rust in taskcluster. r=glandium
Add a toolchain job description which calls the
repack_rust.py script to package the requested
upstream build of Rust and its standard libraries
for use in gecko builds.

Links are added to these new toolchains for various build
and analysis tasks as appropriate. The base-toolchain
tasks use an explicitly-versioned toolchain since those
can be different from the current release used for most builds.

The corresponding tooltool manifest entries are removed
now that taskcluster artifact versions are available.
This simplifies the update process since new toolchains
can be packaged and used automatically by just updating
the versions in the task descriptions.

A 'linux64-rust' toolchain can be added to other tasks
as a dependency and artifact. It supports linux64-
hosted builds of Rust code targeting linux64 or linux32.

A 'linux64-rust-macos' toolchain targets linux64-hosted
builds of Rust code targeting macOS on x86_64.

A 'linux64-rust-android' toolchain targets linux64-hosted
builds of Rust code targeting various Android architectures.

Two 'win64-rust' and 'win32-rust' toolchain tasks create
similar entries for Windows-hosted builds. All our automation
builds are hosted on win64, so we could use one artifact
with support for both targets, but currently this doesn't
work because of cross-compilation issues in some crates.
This patch maintains the previous separation between
win32 and win64 rust toolchains until that can be addressed.

MozReview-Commit-ID: GRiJml8CtzO

--HG--
extra : rebase_source : 09a3698ce7f9a8b5f2b5d9b5a1fde9c05dc6b540
2017-09-12 16:30:19 -07:00
Dustin J. Mitchell
f2c8898f06 Bug 1401180: rename 'toolchain' transform to 'use_toolchains'; r=glandium
MozReview-Commit-ID: 5vKM5dRBuZt

--HG--
rename : taskcluster/taskgraph/transforms/toolchain.py => taskcluster/taskgraph/transforms/use_toolchains.py
extra : rebase_source : 71b3528c4d0d124d0bdb06c1bcab92f8bcabad83
extra : source : 4d29e16b186e836db589c6b80cb7b50631e8ebc4
2017-09-14 20:12:59 +00:00
Wander Lairson Costa
2f3d031392 Bug 1391806: Move valgrind task to its own docker image. r=ted
bug 1382280 tripled the size of desktop-build image because of
installation of debug symbols. It is only used for valgrind, so let's
move valgrind task to use its own image.

MozReview-Commit-ID: 16St7dDj8tr

--HG--
rename : taskcluster/docker/desktop-build/Dockerfile => taskcluster/docker/valgrind-build/Dockerfile
extra : rebase_source : cc66813cab430d906643fbadf63c661e14784f6f
2017-08-21 08:50:08 -03:00
Mike Hommey
726ce85142 Bug 1388573 - Imply needs-sccache from toolchain dependencies. r=dustin
After bug 1388569 and bug 1388572, all jobs that have needs-sccache set
have a dependency on either linux64-sccache or win64-sccache, and
vice-versa. Which means they are now redundant, and one should imply the
other.

--HG--
extra : rebase_source : ae72f67ccf2da7ba645416b8be4d10687005d01a
2017-08-09 09:22:43 +09:00
Mike Hommey
7a6bf77890 Bug 1387346 - Set needs-sccache for static-analysis and valgrind builds. r=dustin
--HG--
extra : rebase_source : d8b9a533696c6c53af0defa81483e6a97009d8f2
2017-08-08 14:08:34 +09:00
Mike Hommey
02f8b2de18 Bug 1384422 - Use toolchain dependencies for clang. r=gps
This leaves out fuzzing and linux static analysis builds, which are
using, respectively, clang 4.0.1 and clang 3.8, while linux64-clang
produces a 3.9 and win*-clang a 5.0

--HG--
extra : rebase_source : 45128ac74bf4fe7e6a2ace57043c34ecdf0fe929
2017-07-26 16:32:15 +09:00
Mike Hommey
bc784842fe Bug 1384418 - Use toolchain dependencies for gcc. r=gps
--HG--
extra : rebase_source : 187010d47e94d53abf18cd9acd7073269744d818
2017-07-26 15:27:09 +09:00
Mike Hommey
cfb8502a7f Bug 1384417 - Use toolchain dependencies for sccache. r=gps
--HG--
extra : rebase_source : 46eb4903d4d918e93b77b17124025253cda28d04
2017-07-20 17:56:49 +09:00
Mike Hommey
780768bc06 Bug 1374940 - Allow to define a list of toolchains to use for a given TC job. r=dustin
Such a definition automatically sets up the corresponding dependencies
in the taskgraph, and adds the necessary artifact definitions for use in
the corresponding jobs. The jobs end up with a MOZ_TOOLCHAINS
environment variable with a list of path@task-id strings, where task-id
is corresponding to the (possibly optimized) toolchain job, and path
corresponding to the toolchain-artifact defined for that toolchain job.

--HG--
extra : rebase_source : b2d297bd75d9c416b30d2a6c6d61efcb64681727
2017-06-21 15:38:21 +09:00
Mike Hommey
b6397fae70 Bug 1356952 - Add tooltool manifests defined in mozharness configurations to taskcluster job definitions. r=mshal
Since bug 1321847, mozharness tooltool manifests can be overriden from
the environment. We use that possibility to now define tooltool
manifests from taskcluster job definitions. Ideally, we'd also remove
the definitions from the mozharness configs, but with things still
running on buildbot, it's not clear what things might break because of
that. We'll do it in a separately back-out-able followup.

--HG--
extra : rebase_source : 860b8f1d4fdc4a557770a3749055f19b1ec45e93
2017-06-06 16:17:40 +09:00
Gregory Szorc
6f813399e5 Bug 1362148 - Always collect build metrics; r=ted
Previously, mozharness defined a separate action to collect build
metrics. This required the script and/or config to define that
action.

Metrics collection for CI is important. So it should be enabled by
default.

This commit changes the "build" action/method to always call the
metrics collection function after successful build. References to
the "generate-build-stats" action have been removed because it is
redundant.

A side-effect of this change is we may generate build metrics where
we weren't before. This could lead to e.g. duplicate entries in some
Perfherder series. Let's see what breaks ;)

MozReview-Commit-ID: 42UQI5YQTMC

--HG--
extra : rebase_source : c57dc9ec6ac46003384edff098a0ad81c75539b7
extra : source : c9812dd7d27a174c0ee46d44ec595fbe29c9e1db
2017-05-04 12:28:52 -07:00
Dustin J. Mitchell
f8a58269bd Bug 1359976: base worker payload generation on worker-type; r=wcosta r=aki
To date we have variously specified both worker-type and worker-implementation,
often manually coordinated. We also embedded a few awkward assumptions such as
that the native engine only runs on OS X.

But a worker type has one and only one implementation, and that implementation
is stable over time (as changing it would require simultaneous landings on all
trees).

Instead, this change makes worker-type the primary configuration, and derives
both a worker implementation (defining the payload format) and worker OS
(determining what to include in the payload) from that value. The derivation
occurs when deciding how to implement a particular job, where the run_using
functions are distinguished by worker implementation.

The two-part logic to determine how and where to run a test task based on its
platform is combined into a single transform, `set_worker_type`.

This contains some other related changes:
 - MOZ_AUTOMATION is set in specific jobs, rather than everywhere docker-worker
   is used
 - the URL to test packages is factored out into a shared function
 - docker-worker test defaults are applied in `mozharness_test.py`
 - the WORKER_TYPE array in `task.py`, formerly mixing two types of keys, is
   split
 - the 'invalid' workerType is assigned an 'invalid' implementation
 - all tasks that do not use job descriptions but use docker-worker, etc. have
   `worker.os` added

Tested to not produce a substantially different taskgraph for a regular push, a
try push, or a nightly cron.

MozReview-Commit-ID: LDHrmrpBo7I

--HG--
extra : rebase_source : 4cdfe6b8d9874b0c156671515b213d820b48482f
2017-05-08 22:53:50 +00:00
Gregory Szorc
abd52a84b9 Bug 1361436 - Emit build stats immediately after build; r=ted
The "generate-build-stats" mozharness action collects a bunch of build
system metrics, including build_resources.json, ctors count, and
installer size and reports them by writing special messages that
log parsers read.

Before this commit, this mozharness action occurred sometime after
"build." But relative ordering to other actions was not consistent
and appears to be significantly cargo culted.

4e61e69a383c (bug 1304508) changed the "check" mozharness action to
invoke `mach build check` instead of `make` directly. An unintended
consequence of this is that `mach build` replaced the
build_resources.json file from the build itself with one measuring
`make check`. This made the "build time summary" metric take a nose
dive.

This commit works around the issue introduced by 4e61e69a383c by
reordering the mozharness actions so "generate-build-stats" follows
immediately after the "build" action. Not only does it now occur
before the "check" action, but it also occurs before uploading and
other actions.

I'm not sure why "generate-build-stats" is its own action and not
part of "build" itself. As the diff shows, numerous instances of
"generate-build-stats" are commented out, which means we aren't
collecting metrics. "generate-build-stats" is also missing from a
handful of mozharness configs, including Windows Clang builds. I'm
not sure what the history is (it is likely varied and almost certainly
involves a fair amount of cargo culting), but I think it is a bug that
we aren't collecting build metrics for every build. I would like to
fix this. And moving "generate-build-stats" immediately after "build"
should make that transition easier.

MozReview-Commit-ID: 7jNTVWRvMnh

--HG--
extra : rebase_source : 0b5fd1f462caa5c283ba7e1b693fdc5b8b948add
2017-05-02 14:32:52 -07:00
Dustin J. Mitchell
449d528cf3 Bug 1333255: rename taskgraph.task to taskgraph.loader; r=jonasfj
MozReview-Commit-ID: 6aPdGbxn0D1

--HG--
rename : taskcluster/taskgraph/task/__init__.py => taskcluster/taskgraph/loader/__init__.py
rename : taskcluster/taskgraph/task/balrog.py => taskcluster/taskgraph/loader/balrog.py
rename : taskcluster/taskgraph/task/beetmover.py => taskcluster/taskgraph/loader/beetmover.py
rename : taskcluster/taskgraph/task/beetmover_checksums.py => taskcluster/taskgraph/loader/beetmover_checksums.py
rename : taskcluster/taskgraph/task/checksums_signing.py => taskcluster/taskgraph/loader/checksums_signing.py
rename : taskcluster/taskgraph/task/post_build.py => taskcluster/taskgraph/loader/post_build.py
rename : taskcluster/taskgraph/task/repacks.py => taskcluster/taskgraph/loader/repacks.py
rename : taskcluster/taskgraph/task/signing.py => taskcluster/taskgraph/loader/signing.py
rename : taskcluster/taskgraph/task/test.py => taskcluster/taskgraph/loader/test.py
rename : taskcluster/taskgraph/task/transform.py => taskcluster/taskgraph/loader/transform.py
rename : taskcluster/taskgraph/task/base.py => taskcluster/taskgraph/task.py
extra : rebase_source : 42a183bae9aedfa04876d99a59119fd08bbf7d73
2017-03-09 19:00:49 -05:00
Dustin J. Mitchell
7e3408a70e Bug 1333255: always transform tasks; r=jonasfj
MozReview-Commit-ID: 3A5wzXKG0Yp

--HG--
extra : rebase_source : 10063aa354d18b08db182b41e9ae61f2f884becd
2017-03-09 16:40:33 -05:00
Dustin J. Mitchell
b0117f4f53 Bug 1333255: use normal old functions to load tasks; r=jonasfj
Instead of using a class's static method, use a simple function, specified by
the `loader` key.

MozReview-Commit-ID: IeOl9qiSCXf

--HG--
extra : rebase_source : 72e0a9dd8385b250a46c9f4adf8a8a0e5b01c156
2017-03-09 23:14:40 -05:00
Dustin J. Mitchell
a83a8a116a Bug 1286075: add a valgrind kind; r=mshal
MozReview-Commit-ID: IM6iFkBIHam

--HG--
extra : rebase_source : 7ed690bd74cc7e45dde76696ea4c6cf5af7acdf1
2016-09-07 00:48:31 +00:00