Граф коммитов

2818 Коммитов

Автор SHA1 Сообщение Дата
Gregory Szorc e5c00fdd77 Bug 1364511 - Upgrade Mercurial during `mach bootstrap` on MozillaBuild; r=RyanVM
The base bootstrap class has code to conditionally upgrade Mercurial
depending on its version. It is kinda broken. This commit overrides
that code in the MozillaBuild bootstrapper to always run `pip`, which
will ensure the latest stable Mercurial release is installed.

MozReview-Commit-ID: 2O1Ff7dAp4o

--HG--
extra : rebase_source : 98cba0abbebf13e8fe93673d5b46eb16e6a3c147
2017-05-12 15:04:28 -07:00
Gregory Szorc 997dcaa50f Bug 1364635 - Don't offer to configure Mercurial if running from a Git checkout; r=Ehsan
Previously, `mach bootstrap` would unconditionally prompt to help
configure Mercurial in most scenarios. I agree with Ehsan's observation
in a mailing list post that this behavior doesn't make sense when
running from a Git checkout, as the user probably doesn't care about
Mercurial if they are using Git.

This change doesn't completely ignore Mercurial for Git users. For
example, we still unconditionally run code that verifies that Mercurial
is installed and reasonably up to date. Changing this would be a bit
of work. But even if we wanted to change it, git-cinnabar users
would benefit from having a modern Mercurial installed. So it isn't
straightforward for Git users to ignore Mercurial completely.

MozReview-Commit-ID: 8ncHRgCsjz

--HG--
extra : rebase_source : 7945e3bf3d5283105bac517885f794fc5d7bba6d
2017-05-12 19:44:03 -07:00
Nick Alexander 102c9bafb0 Bug 1196367 - Remove AndroidEclipse build backend. r=gps
MozReview-Commit-ID: CdrpMaggWsJ

--HG--
extra : rebase_source : f11a0f7983e9cf3131ab3189a3d2816cb86cab2c
2017-05-02 21:39:03 -07:00
Mike Hommey 563880df0e Bug 1363585 - Forbid boolean operations on @depends functions. r=chmanchester
Doing something like "not foo" when foo is a @depends function is never
going to do what the user expects, while not necessarily leading to an
error (like, when used in set_config).

It is better to have an error in those cases where it's expected not to
work, at the expense of making templates a little more verbose, rather
than silently do something the user is not expecting.

--HG--
extra : rebase_source : 87ba80eccc5606322f6dd185d5cb5fc88471e51b
2017-05-10 11:35:22 +09:00
Jan Beich 476caecbe9 Bug 1363686 - Pull LLVM 4.0 for ./mach bootstrap for Stylo on FreeBSD. r=rillian
MozReview-Commit-ID: 9jCdPLsRaQ4

--HG--
extra : rebase_source : e3bab6ddeccac2d1c01d2ca3dd88880684493329
2017-05-10 11:05:44 +00:00
Ralph Giles bd9dc581ea Bug 1336153 - Skip RustLibrary init on artifact builds. r=froydnj,nalexander
Artifact builds were relying on disabling Rust source file inclusion.
The RustLibrary mozbuild class wants to know cargo's output directory
when initializing itself, but when no compile environment is available
rust.configure isn't included and the corresponding config keys
aren't available.

Skip inializing the dependent fields in that case. Since the artifact
build never tries to compile any of the rust libraries, leaving
these properties undefined works ok.

MozReview-Commit-ID: 8IzTsweSygn

--HG--
extra : rebase_source : a59fc01483fbc85766ff4445c5db7ddb1e49b87c
2017-05-09 14:11:12 -07:00
Wes Kocher e2902f93a3 Merge inbound to m-c a=merge
MozReview-Commit-ID: Fp2oBAcru51
2017-05-09 14:34:34 -07:00
Carsten "Tomcat" Book b47fe0286b Backed out changeset 0f320509eddb (bug 1351071) for slowness 2017-05-09 16:58:19 +02:00
Petr Sumbera ad4120d507 Bug 1360571 - Remove "local" bashism from mozconfig_loader. r=glandium
mozconfig_loader is invoked with /bin/sh, which may not be bash. We could
force mozconfigs to be run with bash instead, but that might be disruptive
for existing mozconfigs, and the sole bashism used in mozconfig_loader is
rather straightforward to workaround by namespacing the variables.
2017-05-05 04:31:02 -07:00
Chris Manchester 365a58a471 Bug 1362949 - Update artifact build code to accept buildbot or taskcluster style artifact names for OS X. r=nalexander
MozReview-Commit-ID: Dr0tv8FM7LP

--HG--
extra : rebase_source : 56f4e482f6c23193bbff39995e1de1bc459be233
2017-05-08 11:25:24 -07:00
Ralph Giles e9fb64de96 Bug 1363110 - mozboot: update clang package hash. r=froydnj
Fixes a 403 error running `./mach bootstrap` with stylo enabled.

Bug 1359968 updated the tooltool manifests to point to a
publicly-available clang package. Update the macOS hash
used by mozboot to install the same package for local
use by developers who need rust-bindgen.

MozReview-Commit-ID: FtkATaLwc7n

--HG--
extra : rebase_source : 61390c729e694589b0351026aac0263440a9a3c5
2017-05-08 11:53:35 -07:00
Chris Peterson 44c4d43ecf Bug 1362828 - mozboot: Fix clang package download message. r=froydnj
The Python print() function's does not take a format string, so the extraneous %s here inadvertently prints "Downloading clang package from %s https://..." instead of "Downloading clang package from https://...".

MozReview-Commit-ID: 5Is5TK3X34e

--HG--
extra : rebase_source : 02e625fbdaab536d1a787c33edd6dfda9c1039c6
2017-05-07 00:54:14 -07:00
Ralph Giles ff9ecfa942 Bug 1314147 - Add 'mach vendor aom' for maintaining av1 codec support. r=froydnj
We've traditionally had per-directory 'update' scripts for
third-party media codec implementations. Instead, leverage
the new 'mach vendor' command to centralize the import and
build file generation, placing the upstream source in
third_party/aom.

Note this includes another copy of gtest and other dependencies
which we don't use, but they're required by the upstream build
process we use to generate our own build description, so I've
left them in for now.

MozReview-Commit-ID: CnWcSwvQZEh

--HG--
extra : rebase_source : 28172a41332e920c9ea4a475a6990d43ebf8185f
2017-03-15 14:54:10 -07:00
Jim Chen 15251765f1 Bug 1360291 - Produce android version codes for AArch64/ARM64 Fennec; r=nalexander
Add AArch64/ARM64 support to the script that produces android version
codes. Use the same scheme for AArch64 as x86, since the two
architectures don't overlap, and AArch64 should override ARM just like
x86 should override ARM.
2017-05-04 19:19:31 -04:00
Jan Beich 6c24868ec4 Bug 1360781 - Add Stylo dependencies for ./mach bootstrap on FreeBSD. r=froydnj
MozReview-Commit-ID: 3cD8frPKXnW

--HG--
extra : rebase_source : a2172145af1aec80eb6a67a0a9bd06ab0ec22130
2017-04-29 02:04:02 +00:00
Wes Kocher e141e24ffb Merge m-c to autoland, a=merge
MozReview-Commit-ID: 1peTFbNMVnU
2017-05-02 17:38:11 -07:00
Nathan Froyd 5635c7bffe Bug 1314355 - part 2 - download LLVM packages from mach bootstrap for Stylo development; r=rillian
For Stylo development, LLVM packages are required due to Stylo's
extensive use of bindgen--generating Rust bindings to Gecko's C++ code.
While people can install LLVM via their system package manager, we've
opted to download the LLVM packages used on Mozilla infrastructure for
building Gecko.  Using Mozilla's packages for LLVM ensures that they
work, and also makes it easier/trivial to integrate support for other
things (e.g. Mozilla's static checkers) into `mach bootstrap`.
2017-05-02 11:23:40 -04:00
Nathan Froyd be73c54413 Bug 1314355 - part 1 - add ability to use a generic digest algorithm for http_download_and_save; r=rillian
This will be useful for downloading files from tooltool, which requires
a SHA512 checksum.
2017-05-02 11:23:40 -04:00
Gregory Szorc f7e888274e Bug 1360764 - Print compiler warnings at end of the build; r=froydnj
The way it works today, compiler warnings are logged to build output
twice. The compiler's raw output is logged. Then, if mach's compiler
warning parser detects a warning, a structured log message with info
about that warning is printed as well. Because of the order in which
callbacks fire, mach's warning message is delivered to the logger
first. So build output looks something like:

 0:04.63 Warning: -Wsign-compare in /home/gps/src/firefox/security/nss/lib/dev/ckhelper.c: comparison of integers of different signs: 'CK_ULONG' (aka 'unsigned long') and 'int'
 0:04.63 /home/gps/src/firefox/security/nss/lib/dev/ckhelper.c:135:45: warning: comparison of integers of different signs: 'CK_ULONG' (aka 'unsigned long') and 'int' [-Wsign-compare]
 0:04.63                 (obj_template[i].ulValueLen == -1)) {
 0:04.63                  ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~

That first line is our structured message formatted to plain text.
Subsequent lines are Clang.

The output here is redundant. But having the structured compiler warning
in the JSON logs is nice so downstream systems don't have to reinvent
the parsing wheel.

Also today, at the end of a clobber build we print a count of the
total number of compiler warnings.

Compiler warnings represent potential bugs. So we want to encourage
people to look at them. However, with build system output often spanning
several hundred lines and compiler warnings scattered in no
deterministic order because build system execution is non-deterministic,
it is easy to lose sight of compiler warnings as they go by in build
output. And, it can be difficult to find a warning in files you care
about because you don't know where in the log to look for that file.

This commit attempts to improve the visibility of compiler warnings
by printing a sorted list of warnings at the end of the build. The list
of warnings it prints are only those seen during the current build
operation. We /could/ print a list of all warnings in the persisted
database. But I think this would be annoying, particularly for
incremental or partial builds.

The structured log message previously emitted at compiler invocation
time has been removed. So now the build backend output doesn't have a
redundant "Warning: " line summarizing the warning next to the compiler
output itself. This is less confusing.

That structured log message has been reborn at the end of the build
and reformatted slightly. If there are any consumers assuming that the
log entry near this structured message is compiler output itself,
they will break. I don't think any such consumers exist. It is also
possible the structured log may not contain warning messages if a
process exit occurs. I'm fine with this: if the `mach` process dies,
we have bigger problems to worry about.

The new output looks something like this:

18:07.97 warning: gfx/angle/src/compiler/translator/util.cpp:216:15 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
18:07.97 warning: gfx/angle/src/compiler/translator/util.cpp:225:15 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
18:07.97 warning: gfx/angle/src/compiler/translator/util.cpp:234:15 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
18:07.97 warning: gfx/cairo/libpixman/src/pixman-bits-image.c:268:32 [-Wshift-negative-value] shifting a negative signed value is undefined
18:07.97 warning: gfx/cairo/libpixman/src/pixman-linear-gradient.c:395:6 [-Wunreachable-code] code will never be executed
18:07.97 warning: gfx/cairo/libpixman/src/pixman-x86.c:80:5 [-Wexpansion-to-defined] macro expansion producing 'defined' has undefined behavior

Note the sorting of files, including by line number and column. If we
wanted to, we could even print that line. But that's for another day
(especially since compilers themselves tend to do this already).

This change has the potential to annoy people. That's because instead
of the parsed warning summary lines being spread out over the build
(where they tend not to be noticed), they will be lumped at the end of
the build log, which people do tend to notice. In my build, I have
~363 warnings/lines. Some could perceive this as excessive and
redundant. But the recourse for this is simple: eliminate compiler
warnings. My hope is that by having the compiler warnings exposed
clearly at the end of the build log that people will notice them
and will take action to eliminate them. Sunlight is a disinfectant.

MozReview-Commit-ID: 9VHXsPhAYmr

--HG--
extra : rebase_source : 6a2da05f794a54ea54a48167a36d130dfbf34e59
2017-04-28 15:50:04 -07:00
Gregory Szorc f1c2887efb Bug 1360764 - Record warnings seen during the current operation; r=froydnj
Currently, the build monitor has a single compiler warnings database
that unions warnings from previous runs with warnings from the current
invocation. I want to introduce functionality that treats warnings
seen during the current invocation differently from "all warnings."
To facilitate this, this commit introduces a 2nd, non-persisted
warnings database to record warnings just for the current invocation.

MozReview-Commit-ID: FIY0GiarDmr

--HG--
extra : rebase_source : b2002e1c248ea65b2c0ee45a78b1e74d61a26f3c
2017-04-28 17:13:10 -07:00
Gregory Szorc 435febb8fc Bug 1360764 - Decouple warnings database from log parser; r=froydnj
Currently, the WarningsCollector (which parses warnings from line inputs)
accepts a WarningsDatabase (an object representing a collection of
warnings) and populates that instance as a new warning is parsed. In
an upcoming commit I want to introduce a 2nd WarningsDatabase.

Rather that add it to WarningsCollector, I figure it will be easier
to decouple WarningsDatabase from WarningsCollector.

This commit refactors WarningsCollector to call a callback when a
warning is parsed. This allows consumers to do anything they want
with a warning, including potentially write it to multiple databases.

MozReview-Commit-ID: 7Z9x4FMwyof

--HG--
extra : rebase_source : b4844b5c2b1926840d37e46ead38c8c358762ba8
2017-04-28 16:21:44 -07:00
Gregory Szorc 61a5501145 Bug 1304508 - Support passing --keep-going to make; r=chmanchester,ted
mozharness is currently making a manual `make -k` invocation. We don't
want automation calling `make` directly. So teach `mach build` to
accept a --keep-going argument that results in `make -k`.

MozReview-Commit-ID: H3lJ4r8S4vj

--HG--
extra : rebase_source : 9feb7bcaeb855254c53c5fa9d49177c5133f2773
2016-09-21 13:41:34 -07:00
Carsten "Tomcat" Book 1045b9730a merge mozilla-inbound to mozilla-central a=merge 2017-04-28 10:36:11 +02:00
Shing Lyu c46f5d5baf Bug 1351548 - Remove reftest-stylo.lists. r=bholley
MozReview-Commit-ID: 8LoQ9xNnDnj
2017-04-28 11:15:58 +08:00
Shing Lyu 435db45b79 Bug 1351548 - Add stylo-vs-gecko expectations to reftest.lists. r=bholley
MozReview-Commit-ID: GOUGBsd05cn
2017-04-28 11:15:50 +08:00
Wes Kocher 9528ad9a03 Merge m-c to inbound, a=merge
MozReview-Commit-ID: DaH1djmEY5A
2017-04-27 13:29:07 -07:00
Ted Mielczarek e0a932a9ba bug 1318143 - add support for detecting Visual Studio 2017 to configure. r=gps
This patch adds a copy of vswhere.exe to build/win32, downloaded from the
current latest release (1.0.62):
https://github.com/Microsoft/vswhere/releases/download/1.0.62/vswhere.exe

It changes toolchain.configure to invoke vswhere.exe instead of reading
the registry, since that no longer works for VS2017 (but vswhere can locate
VS2015). It also removes a layer of complexity in that code by dropping
support for non-64-bit host systems, since we don't really support building
on 32-bit Windows anymore anyway.

There's a little bit of fixup in windows.configure where some LIB paths
have changed in 2017.

MozReview-Commit-ID: 5XLWjidS6W4

--HG--
extra : rebase_source : 90f79b6f4a2d8d925dd20eb0bf6ab96262c227d5
2017-04-26 15:18:48 -04:00
Chris Manchester 9f8c2dd4af Bug 1360360 - Package screenshot programs during artifact builds. r=mshal
MozReview-Commit-ID: ExYrFbObOrG

--HG--
extra : rebase_source : be4f389d6b343a4c912d68b5dba40d09bf6ebb92
2017-04-27 14:03:19 -07:00
J. Ryan Stinnett ecab5e3bc9 Bug 1359501 - Accept artifact builds from beta. r=chmanchester
MozReview-Commit-ID: 5a2NIi6U7n7

--HG--
extra : rebase_source : f4059bd35ae03609153eb79c1fe643dd8dc1d23d
2017-04-25 12:12:16 -05:00
Tom Ritter f8c3899ea0 Bug 1353541 Fix rustc in MinGW build r=froydnj,ted
rustc generates .lib files for its libraries when compiling for Windows
(even using MinGW on Linux). But MinGW expects .a files. So we add in
rust-specific prefix and suffixes so MinGW builds can find the libs that
rustc generates. (And the RUST_LIB- variables default to the same vales
as the LIB_ variables otherwise.)

MozReview-Commit-ID: ClsA0YuJaxh

--HG--
extra : rebase_source : 7b46460c94ceb34b7a5a302ce91d3f1dca600041
2017-04-26 12:08:59 -05:00
Wes Kocher 5e8bdb175d Merge inbound to m-c a=merge
MozReview-Commit-ID: A85cs7Yriqj
2017-04-25 13:53:00 -07:00
Luis de Bethencourt 48d0873809 Bug 1140088 - Update git URL to github; r=froydnj
git.mozilla.org has been decommissioned.

DONTBUILD because comment-only fixes are safe.
2017-04-25 14:46:52 +01:00
Mark Banner 021f1ff90a Bug 1358540 - Change the *.lint files to be *.lint.py to better support editor integration & flake8 linting. r=smacleod
MozReview-Commit-ID: 4KK2GZK7xul

--HG--
rename : python/mozlint/test/linters/badreturncode.lint => python/mozlint/test/linters/badreturncode.lint.py
rename : python/mozlint/test/linters/explicit_path.lint => python/mozlint/test/linters/explicit_path.lint.py
rename : python/mozlint/test/linters/external.lint => python/mozlint/test/linters/external.lint.py
rename : python/mozlint/test/linters/invalid_exclude.lint => python/mozlint/test/linters/invalid_exclude.lint.py
rename : python/mozlint/test/linters/invalid_include.lint => python/mozlint/test/linters/invalid_include.lint.py
rename : python/mozlint/test/linters/invalid_type.lint => python/mozlint/test/linters/invalid_type.lint.py
rename : python/mozlint/test/linters/missing_attrs.lint => python/mozlint/test/linters/missing_attrs.lint.py
rename : python/mozlint/test/linters/missing_definition.lint => python/mozlint/test/linters/missing_definition.lint.py
rename : python/mozlint/test/linters/raises.lint => python/mozlint/test/linters/raises.lint.py
rename : python/mozlint/test/linters/regex.lint => python/mozlint/test/linters/regex.lint.py
rename : python/mozlint/test/linters/string.lint => python/mozlint/test/linters/string.lint.py
rename : python/mozlint/test/linters/structured.lint => python/mozlint/test/linters/structured.lint.py
rename : tools/lint/eslint.lint => tools/lint/eslint.lint.py
rename : tools/lint/flake8.lint => tools/lint/flake8.lint.py
rename : tools/lint/wpt.lint => tools/lint/wpt.lint.py
rename : tools/lint/wpt_manifest.lint => tools/lint/wpt_manifest.lint.py
extra : rebase_source : 97de88e0328e91347192672b848b286df1904ade
2017-04-21 17:31:15 +01:00
Carsten "Tomcat" Book 1dd975c180 Backed out changeset eec770d062b4 (bug 1358540) for bustage
--HG--
rename : tools/lint/eslint.lint.py => tools/lint/eslint.lint
rename : tools/lint/flake8.lint.py => tools/lint/flake8.lint
rename : tools/lint/wpt.lint.py => tools/lint/wpt.lint
rename : tools/lint/wpt_manifest.lint.py => tools/lint/wpt_manifest.lint
2017-04-25 10:15:07 +02:00
Mark Banner 8e42062ea3 Bug 1358540 - Change the *.lint files to be *.lint.py to better support editor integration & flake8 linting. r=smacleod
MozReview-Commit-ID: 4KK2GZK7xul

--HG--
rename : tools/lint/eslint.lint => tools/lint/eslint.lint.py
rename : tools/lint/flake8.lint => tools/lint/flake8.lint.py
rename : tools/lint/wpt.lint => tools/lint/wpt.lint.py
rename : tools/lint/wpt_manifest.lint => tools/lint/wpt_manifest.lint.py
extra : rebase_source : 66e4b4f95109c2645d0fb7be273de343408b9406
2017-04-21 17:31:15 +01:00
Sebastian Hengst ceff3b0678 Backed out changeset 1f9d0f8e65b9 (bug 1351548) 2017-04-26 13:13:05 +02:00
Sebastian Hengst f46ebb0d94 Backed out changeset aebb0ceeb20a (bug 1351548) 2017-04-26 13:12:53 +02:00
Shing Lyu 96b400c04a Bug 1351548 - Remove reftest-stylo.lists. r=bholley
MozReview-Commit-ID: Gn0fbS4PZ7i
2017-04-26 18:21:52 +08:00
Shing Lyu dae014d9d5 Bug 1351548 - Add stylo-vs-gecko expectations to reftest.lists. r=bholley
MozReview-Commit-ID: GOUGBsd05cn
2017-04-26 18:21:43 +08:00
Cameron McCormack 14afe3c7a2 Bug 1257451 - Make |mach run| use --debugger-args instead of --debugparams, like the mochitest/reftest commands do. r=gps
MozReview-Commit-ID: ChB9KjNKbHO

--HG--
extra : rebase_source : 223097b1bef76fc5134d15af8cf68ed5e57fe961
2017-04-21 13:17:31 +10:00
Mike Hommey 34e619d1c1 Bug 1357323 - Remove support for gonk in the build system. r=gps
Everything depending on the widget being gonk can go away, as well as
everything depending on MOZ_AUDIO_CHANNEL_MANAGER, which was only
defined on gonk builds under b2g/ (which goes away in bug 1357326).

--HG--
extra : rebase_source : 9f0aeeb7eea8417fa4e06d662d566d67ecaf2a24
2017-04-18 16:56:09 +09:00
Mike Hommey 75fd170e4c Bug 1357326 - Remove things relying on the b2g* MOZ_BUILD_APP in the build system. r=gps
--HG--
extra : rebase_source : 2471f47ad07d8b90098f90db3ead2e26648cea9f
2017-04-18 18:39:53 +09:00
Mike Hommey 9620fd514e Bug 1356937 - Avoid `mach artifact toolchain` failing to get taskcluster artifacts when they are not directly under public/. r=gps
--HG--
extra : rebase_source : aeb7a54dea393a97c8597412e45520a2215f9cc5
2017-04-17 09:47:56 +09:00
Chris Manchester c0c9bf46a0 Bug 1247567 - Include per-source flags in the CompileDB. r=glandium
MozReview-Commit-ID: Ivm4DeG8z94

--HG--
extra : rebase_source : 036629e4aefed04be78452d4c1cb88e8009da35e
2017-04-14 16:02:25 -07:00
Mike Hommey 81ecb91908 Bug 1356976 - Don't make `mach artifact toolchain` return an error code when there is nothing to download. r=gps
There can be cases where there is simply nothing to download, especially
with the --for-job argument. So we just stop erroring out when nothing
was downloaded.

However, if the user explicitly requested a particular file(s) via the
command line and there is nothing to download, we still emit an error
code.

--HG--
extra : rebase_source : 143c15c9711bbfbbfdc110da14f3738132d53ed4
2017-04-17 16:02:25 +09:00
Mike Hommey 59c62bd61c Bug 1356934 - Don't assume the path to the taskcluster config is relative to topsrcdir. r=gps
--HG--
extra : rebase_source : 4f9f30f563b60649f4fe26836c766e16d4b54491
2017-04-17 09:05:13 +09:00
Alex Gaynor fcd28c5b2a Bug 1294641 - whitelist reads from the .app directory in the macOS sandbox r=froydnj,haik
This patch does a few things:
a) Adds the resources location from the .app directory to the read whitelist
b) When it's a non-packaged build, mach run (and various mach tests) set an environment variable for the repo location which we allow reads from.

r=haik,froydnj

MozReview-Commit-ID: KNvAoUs5Ati

--HG--
extra : rebase_source : 81ba8bfee0ca96979cf8e30d75cdd47f06bc10ea
2017-04-07 14:53:19 -04:00
Sebastian Hengst e7317789ad Backed out changeset 225683fed1d1 (bug 1294641) for breaking crashtests, reftests and Windows builds. r=backout on a CLOSED TREE 2017-04-17 16:29:52 +02:00
Alex Gaynor fd11319799 Bug 1294641 - whitelist reads from the .app directory in the macOS sandbox r=froydnj,haik
This patch does a few things:
a) Adds the resources location from the .app directory to the read whitelist
b) When it's a non-packaged build, mach run (and various mach tests) set an environment variable for the repo location which we allow reads from.

r=haik,froydnj

MozReview-Commit-ID: KNvAoUs5Ati

--HG--
extra : rebase_source : f637acff32fc8582732de932503dd696abc57877
2017-04-07 14:53:19 -04:00
Mike Hommey d9e412fe4d Bug 1356524 - Add a `mach artifact toolchain` option to get artifacts from taskcluster builds. r=gps
Now that we have automated build jobs that produce toolchains, we want
to avoid the burden of uploading them to tooltool and then update the
tooltool manifests. But we don't have build jobs for all the possible
toolchains, so we allow `mach artifact toolchain` to get a mix of
tooltool and taskcluster artifacts.

For taskcluster artifacts, we can give a list of job names (conveniently
automatically normalized to begin with 'toolchain-' and end with '/opt')
for which the artifacts will be downloaded, in place of any tooltool
package with the same name (if a tooltool manifest is given).

The taskcluster artifacts that we download are the ones matching the
contents of the tree the command is run with, per the resources declared
for the corresponding toolchain build job (in
taskcluster/ci/toolchain*.yml)

So for example, a linux64 build could call the following command:
  mach artifact toolchain --tooltool-manifest \
    browser/config/tooltool-manifests/linux64/releng.manifest \
    --from-build linux64-gcc

and get the right gcc corresponding to the build-gcc script in tree,
along with the other non-gcc files from the tooltool manifest.

Things are however planned to be even more convenient, but some commands
can already benefit from this form (even without a tooltool manifest).
See e.g. bug 1328454.

--HG--
extra : rebase_source : b12ed77bef529eb8d67476aceac0166bdfe2eeed
2017-04-14 11:34:53 +09:00