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

130 Коммитов

Автор SHA1 Сообщение Дата
Ryan VanderMeulen ce55e7b71a Merge m-c to inbound. a=merge 2016-08-19 09:59:49 -04:00
Kim Moir a92f03d013 Bug 1293730 - Fennec x86 builds as tier 1 r=jlund 2016-08-19 09:09:31 -04:00
Andrew Comminos fea29878bb Bug 1296086 - Add property to TaskCluster to allow software GL layers. r=jmaher
MozReview-Commit-ID: 7FFN6UbOFZY

--HG--
extra : rebase_source : 7a45c0b890e982f33a7deac69611eb4438ea18d4
2016-08-17 17:24:56 -04:00
Wes Kocher d6405029ef Backed out 2 changesets (bug 1295380) because it needs treeherder changes deployed before it can land a=backouty
Backed out changeset 905fb4a53386 (bug 1295380)
Backed out changeset 213a4986ccfd (bug 1295380)
2016-08-18 15:03:55 -07:00
Wes Kocher 66098b3d43 Merge m-c to autoland, a=merge 2016-08-17 17:25:57 -07:00
Andrew Comminos 1fbf3dafb5 Bug 1281241 - Use large desktop-test instances by default on TaskCluster. r=jmaher
MozReview-Commit-ID: 4SntPKPoJOS

--HG--
extra : rebase_source : 6140d1609572083476b9fee44cde1479b6c239af
2016-08-17 17:24:08 -04:00
Geoff Brown 001ef29f8f Bug 1295225 - Allow regex in taskcluster by-test-platform; r=dustin 2016-08-16 14:56:46 -06:00
Geoff Brown defab7007f Bug 1274578 - Do not use alias when specific try -u test requested; r=dustin 2016-08-16 14:56:45 -06:00
Geoff Brown b3de7bb2f6 Bug 1295186 - Consolidate TC test tier transforms; r=dustin 2016-08-15 18:49:02 -06:00
Gregory Szorc 5e326fbca7 Backed out changeset 25bc6ca8f19f (bug 1294234) for breaking TC tests
Introduced a (possibly intermittent) permissions failure downloading
mozharness. Might be cache related.
2016-08-12 21:23:41 -07:00
Gregory Szorc d8a853a72c Bug 1294234 - Use run-task for test tasks; r=dustin
Before, test.sh (duplicated between the desktop-test and
desktop1604-test images) was dropping permissions, creating a workspace,
and executing test-linux.sh. This is functionality now provided by
run-task.

So, convert the test tasks to use run-task.

One thing run-task isn't doing is created the workspace. So this
functionality has been moved into test-ubuntu1204.sh and
test-ubuntu1604.sh.

Since the test.sh files are no longer used after this change, they have
been deleted. The desktop-test image no longer has any files in the
bin/ directory, so the Dockerfile entry to copy those files has been
removed.

MozReview-Commit-ID: 1BiskrMs6xW

--HG--
extra : rebase_source : 264efc9b30e62927dece848b9b1eab7542cf2cba
extra : source : 8335aa40265b1d17421d06d9e9a180eb8419fe47
extra : histedit_source : a5ae54a810718d446ded8bab510e6cd605562737
2016-08-09 14:34:58 -07:00
Gregory Szorc 755f4ce8db Bug 1294234 - Assign command at end of function; r=dustin
Previously, the code performed a "hidden" assignment to
worker['command'] when creating the "command" variable. This
tripped me up when reading the code because relying on variable
references isn't exactly obvious.

We now defer the assignment to worker['command'] until the end,
making the code a little easier to understand.

MozReview-Commit-ID: 23qH4Z3RKY4

--HG--
extra : rebase_source : 52605d7091c73fc47da753bbb298b242f7a3a2ae
extra : histedit_source : 78eb25f963c940956c65fefb2509669a59f78160
2016-08-09 13:20:05 -07:00
Wes Kocher 5e221f11cb Backed out 3 changesets (bug 1294234) for UnicodeDecodeError failures in various tests a=backout CLOSED TREE
Backed out changeset d118ab526ad8 (bug 1294234)
Backed out changeset 3cfc4041d48d (bug 1294234)
Backed out changeset 710d37b610a8 (bug 1294234)
2016-08-11 16:04:48 -07:00
Gregory Szorc e4bcb10295 Backed out changeset 7a3a65ff5865 (bug 1295486) for test failures 2016-08-18 10:21:26 -07:00
Gregory Szorc 43d7d85229 Bug 1295380 - Use run-task for test tasks; r=dustin
Before, test.sh (duplicated between the desktop-test and
desktop1604-test images) was dropping permissions, creating a workspace,
and executing test-linux.sh. This is functionality now provided by
run-task.

So, convert the test tasks to use run-task.

It's worth noting that creating the workspace directory is no longer
necessary because it is defined as a VOLUME in the Dockerfile or a
cache in some task configurations. However, it is default owned by
root:root, so we do need to instruct run-task to chown it.

Since the test.sh files are no longer used after this change, they have
been deleted. The desktop-test image no longer has any files in the
bin/ directory, so the Dockerfile entry to copy those files has been
removed.

MozReview-Commit-ID: 1BiskrMs6xW

--HG--
extra : rebase_source : 4b16837ad9362844668fe4d6cde5ed07a59a3ccd
extra : source : 8335aa40265b1d17421d06d9e9a180eb8419fe47
2016-08-16 09:25:35 -07:00
Gregory Szorc ebb5c961f7 Bug 1295486 - Decode YAML files to UTF-8 at read time; r=dustin
Before, we'd open files and feed bytes to yaml.load(). When a str
is fed to yaml.load(), it attempts to guess the encoding. It defaults
to UTF-8 unless somebody set us up the BOM. This is probably OK.
Except if the file isn't valid UTF-8, the exception will be raised
in the bowels of YAML parsing and it may not be obvious the failure
is due to invalid UTF-8 input versus say Python str/unicode
coercion foo.

We change all call sites that load YAML from a file to use
codecs.open() to open the file in UTF-8 and perform UTF-8
decoding/validation at file read time. This should make any UTF-8
failures more obvious. Furthermore, it reinforces that our YAML files
are UTF-8 and not some other encoding.

I discovered this issue as part of trying to get emoji symbols to
render on Treeherder. Unfortunately, it appears pyyaml detects
many emoji as unprintable characters and refuses to load them. This
makes me sad and makes me want to abandon pyyaml/YAML in favor of
something that supports emoji :P

MozReview-Commit-ID: AOvAruZFfnK

--HG--
extra : rebase_source : 4c5d42cb63da5c9ebfac55ab84b4f7f8bcc648fa
2016-08-18 08:58:59 -07:00
Gregory Szorc 387ec61b32 Bug 1294234 - Use run-task for test tasks; r=dustin
Before, test.sh (duplicated between the desktop-test and
desktop1604-test images) was dropping permissions, creating a workspace,
and executing test-linux.sh. This is functionality now provided by
run-task.

So, convert the test tasks to use run-task.

One thing run-task isn't doing is created the workspace. So this
functionality has been moved into test-ubuntu1204.sh and
test-ubuntu1604.sh.

Since the test.sh files are no longer used after this change, they have
been deleted. The desktop-test image no longer has any files in the
bin/ directory, so the Dockerfile entry to copy those files has been
removed.

MozReview-Commit-ID: 1BiskrMs6xW

--HG--
extra : rebase_source : 75a937321d1850caebbb1eeaab42d04638ef75d9
extra : source : 8335aa40265b1d17421d06d9e9a180eb8419fe47
2016-08-09 14:34:58 -07:00
Gregory Szorc f0b91bdcce Bug 1294234 - Assign command at end of function; r=dustin
Previously, the code performed a "hidden" assignment to
worker['command'] when creating the "command" variable. This
tripped me up when reading the code because relying on variable
references isn't exactly obvious.

We now defer the assignment to worker['command'] until the end,
making the code a little easier to understand.

MozReview-Commit-ID: 23qH4Z3RKY4

--HG--
extra : rebase_source : 44e8a2ddd7b229221d76710c4394618eb13ef348
2016-08-09 13:20:05 -07:00
Kim Moir 904d639196 Bug 1282468 - disable buildbot asan builds and tests on trunk r=gbrown 2016-08-10 10:26:58 -04:00
Carsten "Tomcat" Book 553a2da922 merge mozilla-inbound to mozilla-central a=merge 2016-08-10 15:54:26 +02:00
Kim Moir f906e9a8e1 Bug 1283879 - ASan builds shouldn't try to download symbols (since they don't produce symbols zips) r=dustin 2016-08-09 09:19:55 -04:00
Dustin J. Mitchell f7a9bbac26 Bug 1293733: accept pushdate from command line; r=garndt
MozReview-Commit-ID: BrGiowlMVCa

--HG--
extra : rebase_source : e47b9e18b9dbc9e617f9bad165318a74c4e96e36
extra : source : fc1ed3fd8584161ae4693bd1c956e8254368b6bc
2016-07-13 18:50:50 +00:00
Sebastian Hengst a2c2fa9153 Backed out changeset 7f3cd5974457 (bug 1283879) for failing "all_kinds.py:68:15 | multiple spaces after keyword (E271)" as requested by dustin. r=backout 2016-08-08 23:39:50 +02:00
Dustin J. Mitchell e91ee0ef70 Bug 1293397: fix fake to make tests pass? r=armenzg
MozReview-Commit-ID: AuQBk2w8Ka1
2016-08-08 21:03:38 +00:00
Kim Moir f8a55f4057 Bug 1283879 - ASan builds shouldn't try to download symbols (since they don't produce symbols zips) r=dustin DONTBUILD 2016-08-08 14:44:53 -04:00
Dustin J. Mitchell 5e8cbd7fb2 Bug 1290523: support generic-worker task descriptions; r=pmoore
MozReview-Commit-ID: CHIGSrB1MIu

--HG--
extra : rebase_source : 41e56a996867dde93fd8f5f67411f81200b507b8
2016-07-29 17:50:09 +00:00
Armen Zambrano Gasparnian ff5e584d9d Bug 1279676 - Support --rebuild try flag to schedule tests N times. r=dustin
MozReview-Commit-ID: Lrxi8t53nwy

If a developer adds '--rebuild N' to their try syntax they will get test jobs scheduled N times.
This is useful to determine intermittency rate.

This fixes a regression due to the recent refactoring on how we schedule tasks.

--HG--
extra : rebase_source : 355ca631353015bf63461c194168d753efd6958e
2016-07-28 13:20:44 -04:00
Carsten "Tomcat" Book eeacfbeff0 merge mozilla-inbound to mozilla-central a=merge 2016-08-03 17:03:41 +02:00
Gregory Szorc 2377b59bfe Bug 1290611 - Normalize mode of created file in tests; r=dustin
Without this, current umask may influence test results. That was
causing differences between automation and local runs.

MozReview-Commit-ID: 1eu613aBpKB

--HG--
extra : rebase_source : 41c92b9ea795217e715dfa949d3444534aafb7c7
2016-08-02 08:36:19 -07:00
Gregory Szorc 08d735f41f Bug 1291070 - Tag and use decision image 0.1.4; r=dustin
To pull in run-task exit code fix.

MozReview-Commit-ID: 5QvcQijTRKH

--HG--
extra : rebase_source : cac011e2835f18e620293e8c05a8f49da472d925
2016-08-01 18:09:09 -07:00
Gregory Szorc 0f7dc03a9f Bug 1291070 - Return process exit code properly; r=glandium
Before, we were returning None, which gets converted to 0.
Derp.

Also fix a flake8 failure introduced by 9f5fbb3066c9.

We'll also need to generate a new decision image. But that will
require someone with TC privileges to be around. That can be done
in a separate commit to unblock this from landing and fixing
consumers of run-task that aren't the decision image.

MozReview-Commit-ID: 6XuoIxjDozF

--HG--
extra : amend_source : 4a3047d09d9bdce5a173a71ec3c68b8c4579a910
2016-08-01 21:44:22 -07:00
Iris Hsiao 923cbf5038 Backed out changeset 51f838971d62 (bug 1291070) for Taskgraph test failure 2016-08-02 17:24:25 +08:00
Gregory Szorc e4c0cab07e Bug 1291070 - Return process exit code properly; r=glandium
Before, we were returning None, which gets converted to 0.
Derp.

Also fix a flake8 failure introduced by 9f5fbb3066c9.

We'll also need to generate a new decision image. But that will
require someone with TC privileges to be around. That can be done
in a separate commit to unblock this from landing and fixing
consumers of run-task that aren't the decision image.

MozReview-Commit-ID: 6XuoIxjDozF

--HG--
extra : rebase_source : 836f4996cb9be24e19504f73792b159f0ffbdbee
2016-08-01 21:44:22 -07:00
Armen Zambrano Gasparnian 6415eb5945 Bug 1288742 - Increase expiration date of all gecko decision artifacts bar image context tar balls. r=dustin
Until now Gecko decision task artifacts would expire after a week. Unfortunately, some of these artifacts are
needed in order for Treeherder to determine which tasks it can schedule on a given push.

In this change, we're changing the expiration of all artifacts except those that are related to docker image
optimizations, which, are very large files and we only want to keep for a week.

MozReview-Commit-ID: 96ahyWmoI7W

--HG--
extra : rebase_source : d0f4d65e3b5bfae832a5aaed60c0dfd58f0bdc62
2016-07-27 10:51:38 -04:00
Gregory Szorc f434988215 Bug 1291035 - Increase HTTP connection pool capacity; r=dustin
I was looking at some decision task logs and noticed lines like:

  Connection pool is full, discarding connection: taskcluster

I also noticed lines like:

  Starting new HTTP connection (153): taskcluster

In this case, we had established 153 TCP connections to a server.

Looking at the requests source code, a requests.session by default
creates a connection pool with capacity of 10. There are actually 2
components to the capacity: idle connections and active connections.
What appeared to be happening was we could obtain an idle connection,
use it, and then it would be discarded when put back in the idle
pool because the idle pool was at capacity. Furthermore, it also
appears that connections were sitting around waiting for a TCP
connection.

This commit uses a custom "adapter" with an increased pool size that
matches the concurrency level of the code issuing the HTTP requests.
This should increase the number of concurrent TCP connections / requests,
decreease the number of TCP connections being used overall, and make
decision tasks complete faster.

MozReview-Commit-ID: 6NDbz78TM2y

--HG--
extra : rebase_source : a48e1dae31a5e2af2bc554b544a9019d50dc784f
2016-08-01 14:49:55 -07:00
Gregory Szorc 66dab0495d Bug 1290620 - Use run-task from decision task; r=dustin
This commit does a lot. But it's really not too difficult to comprehend
once you focus on the final state, which is basically the same as the
"lint" image and derived tasks.

Before, the "decision" image contained a "checkout-gecko" script and
"run-action" and "run-decision" scripts. The latter 2 invoked the first
script.

The "run-task" script basically does what the combination of these
scripts were doing before. So we switch to it.

While we're here, we also replaced the custom Mercurial installation in
this image with the shared install-mercurial.sh script. The
system-setup.sh script for the decision image is now short and sweet.

The YAML files for tasks using this image have been updated to use
"run-task." We no longer have to pass an environment variable to hold
command arguments. So we revert to putting these arguments inline in
the task's command. Dustin never liked passing the arguments as
environment variables, so it should make him happy ;) We add
--log-no-times because "run-task" prefixes its own timestamps on output
lines.

The path to the Gecko checkout has been changed from
/home/worker/workspace to /home/worker/checkouts to match changes made
in bug 1289643.

Finally, since "checkout-gecko-and-run" is no longer used, we delete it.

The Docker image version has been bumped accordingly.

MozReview-Commit-ID: HAGuCz6668Q

--HG--
extra : rebase_source : 9586873c21d67f8ce869b7ceee221e8fa8775539
2016-07-29 21:03:48 -07:00
Dustin J. Mitchell ac4f355abc Bug 1290611: make test_p_expands_ridealongs resilient; r=gps
Use the source RIDEALONG_BUILDS value in the module under test so that changes
to that variable do not cause the test to fail.

MozReview-Commit-ID: EfHQ7baBziB

--HG--
extra : rebase_source : 1c52bf62709236db14a3ce318495891a2eb274f4
2016-07-29 23:01:04 +00:00
Dustin J. Mitchell 25cdf853c0 Bug 1290611: fix test_generate_context_hash; r=gps
The existing hash was for an empty tarfile.  Oops!

MozReview-Commit-ID: 1KOZxnDmoOH

--HG--
extra : rebase_source : 5d4db299dba80f98ba0383e88a1f4cfcb1dbcc70
2016-07-29 22:54:18 +00:00
Gregory Szorc 1ed7f8482f Bug 1290531 - Build Docker images from custom tar contexts; r=dustin
Now that Docker image building is called from Python, we can start to
do advanced stuff with it.

With this commit, we switch from building Docker images directly from
the source directory ("the Docker way") to using our custom Docker image
build contexts.

The main advantage of this is that locally-built Docker images can now
use our custom Dockerfile syntax to include extra files in the build
context!

The code for building a Docker image from a context has been extracted
to its own standalone function. I have nefarious plans for this in the
future, such as the ability to override the FROM syntax to specify
URLs of images. This would allow us to host base images on our own
server, which removes a dependency on Docker Hub and improves
determinism, since images on Docker Hub change all the time.

MozReview-Commit-ID: 5lTdV8yEHkc

--HG--
extra : rebase_source : c374558b82d0d0302351ffbf3c82878c6663f40c
2016-07-29 13:41:59 -07:00
Gregory Szorc 65c418d029 Bug 1290531 - Invoke docker from Python, remove build.sh; r=dustin
build.sh had been reduced to invoking `docker`. We move that invocation
to Python and remove build.sh. Long live build.sh!

MozReview-Commit-ID: FQBDJv4HSaU

--HG--
extra : rebase_source : 82979f2526ab1ab6dd5c25032b8d81074c797d94
2016-07-29 13:22:06 -07:00
Gregory Szorc 1ec6c0a5b5 Bug 1290531 - Move image tag resolution to Python; r=dustin
We already had code for resolving the image registry and tag. We
refactored it slightly to be more useful then changed build.sh to
accept the tag as an argument.

At this point, build.sh is basically a wrapper around `docker`. But
there's a special case for executing custom "build.sh" files we
need to eliminate first...

MozReview-Commit-ID: A9HVvxgCdG2

--HG--
extra : rebase_source : 30a408860aea619813f32723fe960d1224b5dbc7
2016-07-29 13:06:10 -07:00
Gregory Szorc efd6c78ba9 Bug 1290531 - Move image name verification to Python; r=dustin
MozReview-Commit-ID: 8KJZH5vjANS

--HG--
extra : rebase_source : f2cf88113473fa1dadcd4ff6f3baaf7dca55ee55
2016-07-29 12:59:46 -07:00
Gregory Szorc e02661d117 Bug 1290531 - Move docker validation from build.sh to Python; r=dustin
Now that we have a mach command and Python code for doing Docker image
building, we can start moving code from build.sh to Python.

We start with searching for and validating the `docker` binary works.

MozReview-Commit-ID: 2DCc3b8UyZ3

--HG--
extra : rebase_source : ce5ad9dc39eea1fae97aec93eaefbc2c169ec313
extra : amend_source : 806411d3777c657b21d33bbb0e18e06de95716ce
2016-07-29 12:58:39 -07:00
Gregory Szorc d880926e5a Bug 1290531 - Add mach taskcluster-build-image command; r=dustin
Docker image building will soon need to use Python in order to produce
the image build context archive.

As the first step towards this, we introduce a Python function that
calls out to build.sh. We also implement a mach command that calls it
so we can test the functionality.

I'm not keen about introducing a new mach command. I'd prefer to have
a sub-command instead. I'm not sure what all uses
`mach taskcluster-load-image`. Perhaps we could make a `taskcluster`
top-level command. Or perhaps we could fold these image commands into
`mach taskgraph`? Either way, the mach side of this isn't terribly
important to the commit series: most of the code will live inside a
Python module outside of mach.

MozReview-Commit-ID: AI8p6H4psNh

--HG--
extra : rebase_source : a3a18cbeb05152ab65f2bf152fd2517bbcd8981e
2016-07-29 12:45:25 -07:00
Dustin J. Mitchell 7d2c453f6e Bug 1290602: add TransformTask to task-graph machinery; r=gps
This abstracts out the process of running transforms as specified in kind.yml,
with some useful default behavior that can be overridden by subclasses.

MozReview-Commit-ID: 8pY4IYaN7NU

--HG--
extra : rebase_source : 66711546879edacc5757197674b5bd3f643a0093
extra : source : 9930bede24bcda58c40ca0ee9085aedc00e8ec1b
2016-08-01 17:52:52 +00:00
Gregory Szorc 48d65b223f Bug 1289643 - Allow level-{{level}}-checkouts cache to be used on Try; r=dustin
Previously, the VCS checkout cache would be optimized away on Try. This
meant every task on Try had to create its own checkout from scratch. This
meant writing ~150,000 files. By allowing use of the cache, we minimize
the amount of work tasks need to perform on Try and therefore make tasks
complete faster, on average.

MozReview-Commit-ID: EWuic8lFVtv

--HG--
extra : rebase_source : fd1096da52b499064ab3c0962a4321e8d4f92bb9
2016-07-29 11:10:48 -07:00
Gregory Szorc 67edc6b484 Bug 1289643 - Add $ to regular expression in hg-shared cache name; r=dustin
All the other expressions are anchored via ^ and $.

MozReview-Commit-ID: BkCbZZUnwK6

--HG--
extra : rebase_source : 0dc6c7577898e447946217494e5cd491b13e22fa
2016-07-29 10:29:25 -07:00
Geoff Brown 80b93cef57 Bug 1280440 - Add TC Android x86 tests, tier 2; r=dustin 2016-08-02 09:37:44 -06:00
Gregory Szorc a91e4e11c1 Bug 1290516 - Remove {{project}} from cache path for decision and action tasks; r=dustin
Currently, the gecko-decision and action tasks maintain a separate cache
for each "project" (Firefox repo) source checkout. In my opinion, this
is not necessary.

Separate caches/source checkouts mean a lower chance for a cache hit:
a lower chance that any given worker will have a source checkout readily
available for the "project" being built. They also mean workers store
more data and files in caches.

By using a shared cache for source checkouts, workers will ideally
only have a single source checkout cache and will be pretty much
guaranteed to have a checkout readily available (the main exception
being the first task on a freshly-provisioned worker).

A downside of a shared cache is that workers may spend more time doing
`hg update` operations. e.g. if the last task was from mozilla-release
and the current task is from mozilla-central, thousands of files will
be updated. However, I believe we will still be better off because
separate caches *increase* the probability for a full checkout, which
involves writing ~150,000 files! So I believe this change will lower
the overall amount of VCS work done by workers while possibly
sacrificing the lowest possible execution time (which is achieved by
minimizing the `hg update` work).

It's worth noting that `hg robustcheckout` (which is used by these
tasks) does the equivalent of an `hg purge --all`. This ensures that all
untracked and ignored files from previous tasks are deleted. So there
should be no contamination from previous tasks.

MozReview-Commit-ID: I5Ng3xFEfou

--HG--
extra : rebase_source : db423e5005d1e26d7dfebbbfa28893fc32caef6f
2016-07-29 10:09:06 -07:00
Mihai Tabara 82776bdf8c Bug 1289122 - Remove coalescing from PGO try jobs. r=dustin
MozReview-Commit-ID: KAqZlUjMXdQ
***
Bug 1289122 - bugfix to chain together the elements to be removed. r=dustin

MozReview-Commit-ID: 3XhHZgmq6e3

--HG--
extra : rebase_source : 2d0ac3710b4ce1376db17a50c6b3bc4354da3ea4
2016-07-26 00:11:40 +01:00