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

38 Коммитов

Автор SHA1 Сообщение Дата
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
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
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
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 260d3ee7ed Bug 1288567 - Inline create_context_tar; r=dustin
The function was only used once and was providing little to no value.

A test of this function has been removed. Tests for the lower-level
context creation function are sufficient.

MozReview-Commit-ID: D9EhmZQlqG5

--HG--
extra : rebase_source : 4b3faa0fc5f085c1c77fe5636744946a6d442b05
2016-07-25 11:48:20 -07:00
Gregory Szorc fc3f70b542 Bug 1288567 - Add special Dockerfile syntax to add arbitrary files to context; r=dustin
A limitation of traditional docker build context generation is it
only includes files from the same directory as the Dockerfile. When
repositories have multiple, related Dockerfiles, this limitation
results file duplication or putting all Dockerfiles in the same
directory (which isn't feasible for mozilla-central since they would
need to be in the root directory).

This commit enhances Dockerfiles to allow *any* file from the
repository checkout to be ADDed to the docker build context.

Using the syntax "# %include <path>" you are able to include paths
or directories (relative from the top source directory root) in the
generated context archive. Files add this way are available under the
"topsrcdir/" path and can be ADDed to Docker images.

Since context archive generation is deterministic and the hash of
the resulting archive is used to determine when images need to be
rebuilt, any extra included file that changes will change the hash
of the context archive and force image regeneration.

Basic tests for the new feature have been added.

MozReview-Commit-ID: 4hPZesJuGQV

--HG--
extra : rebase_source : 99fae9fe82102126fbee879c134981047bb4a601
2016-07-21 16:51:30 -07:00
Gregory Szorc 0c32f4dd33 Bug 1288567 - Use create_context_tar in generate_context_hash; r=dustin
This restores order to only having a single hash for a context
directory.

Using a tempfile here is a bit unfortunate. It can be optimized later,
if needed.

MozReview-Commit-ID: LMNsvt3fDYx

--HG--
extra : rebase_source : 8c2b70164aed6d744a71d170d0324797e755cbaf
2016-07-22 12:46:06 -07:00
Gregory Szorc b1bf2c70e8 Bug 1288567 - Add basic test for context tar creation; r=dustin
Now that the context tar creation function is standalone and doesn't
rely on external state, we can start unit testing it easier.

We establish a basic unit test that verifies the function works as
advertised and that output is deterministic.

MozReview-Commit-ID: H4MY28PiHSN

--HG--
extra : rebase_source : 692a5e3d5af6edd14b3d4ceb7c90cd1e0344052f
2016-07-22 10:57:27 -07:00
Dustin J. Mitchell ffca84ff7d Bug 1281004: Specify test tasks more flexibly; r=gps; r=gbrown
This introduces a completely new way of specifying test task in-tree,
completely replacing the old spider-web of YAML files.

The high-level view is this:

 - some configuration files are used to determine which test suites to run
   for each test platform, and against which build platforms

 - each test suite is then represented by a dictionary, and modified by a
   sequence of transforms, duplicating as necessary (e.g., chunks), until
   it becomes a task definition

The transforms allow sufficient generality to support just about any desired
configuration, with the advantage that common configurations are "easy" while
unusual configurations are supported but notable for their oddness (they
require a custom transform).

As of this commit, this system produces the same set of test graphs as the
existing YAML, modulo:

  - extra.treeherder.groupName -- this was not consistent in the YAML
  - extra.treeherder.build -- this is ignored by taskcluster-treeherder anyway
  - mozharness command argument order
  - boolean True values for environment variables are now the string "true"
  - metadata -- this is now much more consistent, with task name being the label

Testing of this commit demonstrates that it produces the same set of test tasks for
the following projects (those which had special cases defined in the YAML):

  - autoland
  - ash (*)
  - willow
  - mozilla-inbound
  - mozilla-central
  - try:
    -b do -p all -t all -u all
    -b d -p linux64,linux64-asan -u reftest -t none
    -b d -p linux64,linux64-asan -u reftest[x64] -t none[x64]

(*) this patch omits the linux64/debug tc-M-e10s(dt) test, which is enabled on
ash; ash will require a small changeset to re-enable this test.

IGNORE BAD COMMIT MESSAGES (because the hook flags try syntax!)

MozReview-Commit-ID: G34dg9f17Hq

--HG--
rename : taskcluster/taskgraph/kind/base.py => taskcluster/taskgraph/task/base.py
rename : taskcluster/taskgraph/kind/docker_image.py => taskcluster/taskgraph/task/docker_image.py
rename : taskcluster/taskgraph/kind/legacy.py => taskcluster/taskgraph/task/legacy.py
extra : rebase_source : 03e70902c2d3a297eb9e3ce852f8737c2550d5a6
extra : histedit_source : d4d9f4b192605af21f41d83495fc3c923759c3cb
2016-07-11 23:27:14 +00:00
Kalpesh Krishna 7eccb69c1c Bug 1281062 - Create Action Tasks to schedule new jobs. r=dustin
MozReview-Commit-ID: 5MvqLfGrlLC

--HG--
extra : rebase_source : dd954acce8ef9ed2f3b9aa7c5c2cbd916a82f1f1
2016-07-11 22:43:58 +05:30
Kalpesh Krishna e5474c6adb Bug 1285755 - Adding a from_json function to TaskGraph and each Task subclass. r=dustin
MozReview-Commit-ID: 8fmALSP8nDs

--HG--
extra : rebase_source : 52729a77206498ca32e716ae3774e21f6329f805
2016-07-11 22:39:04 +05:30
Dustin J. Mitchell 647b6edf55 Bug 1281004: factor out searching for python objects by path; r=gps
MozReview-Commit-ID: 4ioEqPA7BQk

--HG--
extra : source : bc47aed3745de266164932e1eb1c7ad244e5f9cb
2016-06-29 22:12:09 +00:00
Dustin J. Mitchell c6a548be78 Bug 1280231: rename types.py to taskgraph.py; r=Callek
MozReview-Commit-ID: Jf6CVyFCGMI

--HG--
rename : taskcluster/taskgraph/types.py => taskcluster/taskgraph/taskgraph.py
extra : rebase_source : 12e30313eb1fd4062c0be9d869460644ae949019
extra : intermediate-source : 4b1d94901b4d09c13031982c28eec6a48f938c71
extra : source : e85765be39d61d7c0df9831e16930328effad554
2016-06-20 19:11:52 +00:00
Dustin J. Mitchell 77ad76d2ad Bug 1280231: Load kinds in order by dependencies; r=jonasfj
This enables kinds that generate tasks based on those output by another kind.
For example, the test kind might generate a set of test tasks for each build
task.

MozReview-Commit-ID: K7ha9OmJ6gd

--HG--
extra : rebase_source : 36fc7e2d9c5987a4bb8b3779cf1a9308f5561828
extra : intermediate-source : 7898d1ab1afc08f78445165d0c94566b0682a2f7
extra : source : 0852b38cd86c42ebba0f9e74d7470a263969b784
2016-06-27 22:31:06 +00:00
Dustin J. Mitchell 49f6131a63 Bug 1280231: refactor task kinds to task classes; r=jonasfj
MozReview-Commit-ID: 1cNukxBgfey

--HG--
extra : rebase_source : 4f0fcce2bcea0fb78ba70e7c052638ca2c5b8a3d
extra : intermediate-source : ba5cbf4e06a550993e5216f816dcf0ccd3938b2e
extra : source : f744bd2fbcd3ae9b90851dcd12307c15d04f8bea
2016-06-27 22:57:44 +00:00
Wes Kocher c9059e6a53 Backed out 3 changesets (bug 1280231) for decision task failures CLOSED TREE
Backed out changeset 4b1d94901b4d (bug 1280231)
Backed out changeset 7898d1ab1afc (bug 1280231)
Backed out changeset ba5cbf4e06a5 (bug 1280231)

--HG--
rename : taskcluster/taskgraph/taskgraph.py => taskcluster/taskgraph/types.py
2016-06-27 15:45:44 -07:00
Dustin J. Mitchell 1a1a14c19c Bug 1280231: rename types.py to taskgraph.py; r=Callek
MozReview-Commit-ID: Jf6CVyFCGMI

--HG--
rename : taskcluster/taskgraph/types.py => taskcluster/taskgraph/taskgraph.py
extra : source : e85765be39d61d7c0df9831e16930328effad554
extra : histedit_source : 732dc9a6b9206be1bb2a3e4f1d507d0001588f6c
2016-06-20 19:11:52 +00:00
Dustin J. Mitchell c0fe75d7d2 Bug 1280231: Load kinds in order by dependencies; r=jonasfj
This enables kinds that generate tasks based on those output by another kind.
For example, the test kind might generate a set of test tasks for each build
task.

MozReview-Commit-ID: K7ha9OmJ6gd

--HG--
extra : source : 0852b38cd86c42ebba0f9e74d7470a263969b784
extra : amend_source : f3e8c306afe29ae75bd1f93d8b76ff2b27ad8ed1
extra : histedit_source : aa1ae93aba51025a0e1bd2ecf473aaa33235e4c7%2C2c704328e983a3d75a834b069431e4f166389b02
2016-06-27 22:31:06 +00:00
Dustin J. Mitchell 4cfe2b182c Bug 1280231: refactor task kinds to task classes; r=jonasfj
MozReview-Commit-ID: 1cNukxBgfey

--HG--
extra : source : f744bd2fbcd3ae9b90851dcd12307c15d04f8bea
2016-06-20 20:45:15 +00:00
Justin Wood 15b23fced1 Bug 1280956 - Use in-tree linter job to flake8 test taskcluster directory. r=dustin
MozReview-Commit-ID: FsWmAnnycZ2

--HG--
extra : rebase_source : 04a32cea2de133cb75472092cffb8a215f7dc603
2016-06-20 21:06:55 -04:00
Justin Wood d57a9292af Bug 1280914 - Fix test_create after "Bug 1276216 - All tasks with no other dependencies should depend on the decision task"
MozReview-Commit-ID: CCdXafMIDUD
2016-06-20 10:22:15 -04:00
Justin Wood 43b27f7bac Bug 1280904 - Fix test_decision after Bug 1277417 Output JSON from `mach taskgraph` commands. r=dustin
MozReview-Commit-ID: Iymc0k5GeVK
2016-06-14 14:19:50 -04:00
Justin Wood 83a1642d15 Bug 1171736 - Add taskcluster scheduling logic (on try) for linux l10n. r=sfink
MozReview-Commit-ID: Auz7sOW5Ptr

--HG--
rename : testing/mozharness/configs/single_locale/tc_linux64.py => testing/mozharness/configs/single_locale/tc_linux32.py
2016-06-06 16:09:51 -04:00
Sebastian Hengst faf31d5017 Backed out changeset c7ddd550008c (bug 1171736) for breaking gecko-decision opt. r=backout on a CLOSED TREE 2016-06-12 21:01:43 +02:00
Justin Wood 1c1bc5647d Bug 1171736 - Add taskcluster scheduling logic (on try) for linux l10n. r=sfink
MozReview-Commit-ID: Auz7sOW5Ptr

--HG--
rename : testing/mozharness/configs/single_locale/tc_linux64.py => testing/mozharness/configs/single_locale/tc_linux32.py
extra : rebase_source : 95494000eeca93b45d267328f3a88315bb2829f8
2016-06-06 16:09:51 -04:00
Dustin J. Mitchell 80f9957372 Bug 1275409: remove taskcluster_graph.build_task; r=wcosta
MozReview-Commit-ID: IphYcikdlxX

--HG--
extra : rebase_source : 0673b68c0a6b1bfdb186a83f8bae665efaa8b68a
2016-06-04 21:11:59 +00:00
Dustin J. Mitchell ff5404235a Bug 1275409: move taskcluster_graph.commit_parser; r=wcosta
MozReview-Commit-ID: JWCzOWVUEP6

--HG--
rename : testing/taskcluster/tests/test_commit_parser.py => taskcluster/taskgraph/test/test_util_legacy_commit_parser.py
rename : testing/taskcluster/taskcluster_graph/commit_parser.py => taskcluster/taskgraph/util/legacy_commit_parser.py
extra : rebase_source : 5cb3b25449f905a02c04f7855899ba02f2e1c761
2016-06-04 21:09:18 +00:00
Dustin J. Mitchell 271fc2bc85 Bug 1275409: remove taskcluster_graph.image_builder; r=wcosta
MozReview-Commit-ID: 21HBtcDVPXC

--HG--
extra : rebase_source : 985d158fdd3c326f422ce6feea1a59c688d48b01
2016-06-06 18:55:10 +00:00
Dustin J. Mitchell 6c587676b0 Bug 1275409: move taskcluster_graph.from_now to taskgraph.util.time; r=wcosta
MozReview-Commit-ID: 3GFO4f34dg8

--HG--
rename : testing/taskcluster/tests/test_from_now.py => taskcluster/taskgraph/test/test_util_time.py
rename : testing/taskcluster/taskcluster_graph/from_now.py => taskcluster/taskgraph/util/time.py
extra : rebase_source : 5dfe5c92fa42c2837381232d3f1b343e93f6422e
2016-06-04 19:20:07 +00:00
Dustin J. Mitchell c1ccda957f Bug 1275409: move templates to taskgraph.util; r=wcosta
MozReview-Commit-ID: 3vdnm20W4OD

--HG--
rename : taskcluster/taskgraph/test/test_util.py => taskcluster/taskgraph/test/test_util_docker.py
rename : testing/taskcluster/tests/test_templates.py => taskcluster/taskgraph/test/test_util_templates.py
rename : taskcluster/taskgraph/util.py => taskcluster/taskgraph/util/__init__.py
rename : testing/taskcluster/taskcluster_graph/templates.py => taskcluster/taskgraph/util/templates.py
extra : rebase_source : 6d098d87e715b82c0dcd5bf03beb7646bbd50fe2
2016-06-05 18:34:22 +00:00
Dustin J. Mitchell 6ea3546a3e Bug 1277417: output task information in JSON or just labels; r=ahal
The JSON output is suitable for processing with `jq` to extract features of
interest.

MozReview-Commit-ID: 5wpV7sXlOz3

--HG--
extra : rebase_source : 4ffb78ab7a85b32e64d10218a4a8841c22e689f8
2016-06-07 03:09:48 +00:00
Dustin J. Mitchell 69471c3482 Bug 1276216: make any tasks without dependencies depend on the decision task; r=ahal
MozReview-Commit-ID: 5k5jC7CCHNW

--HG--
extra : rebase_source : 0f77e208b1947b2082481b7ceeab57055c13797e
2016-06-06 17:23:03 +00:00
Dustin J. Mitchell d788a52aeb Bug 1274611: implement docker image builds as a distinct kind; r=wcosta
MozReview-Commit-ID: 81Ad9LcBdx6

--HG--
extra : rebase_source : 3a2c06040f7af8b757eec2991360a7a4d3cf61cb
2016-06-05 19:15:53 +00:00
Dustin J. Mitchell 722b95f979 Bug 1274611: Implement task-graph optimization; r=gps
* Implement & document optimization (although legacy kind doesn't do much of it)
 * Introduce `optimize_target_tasks` parameter to control whether tasks in the
   target set can be optimized (no for try, yes for most other branches)
 * Refactor to include resolved taskIds in the optimized task graph
 * Include a `label-to-taskid.json` artifact.
 * Introduce {'task-reference': '... <dependency-name> ...'} for referring to
   parent tasks' taskId.

MozReview-Commit-ID: LWvlWNz49U5

--HG--
extra : rebase_source : 780e0e23d24b268ade33ecdcbccb5081f32aac48
2016-06-05 19:49:41 +00:00
Dustin J. Mitchell 05baf69879 Bug 1269340: add support for try -t option; r=jmaher
This adds support for the `-t`/`--talos` option, matching such jobs against
`talos_try_name`.  There are no such tasks just yet.

MozReview-Commit-ID: FTEx7Nyyi9Z

--HG--
extra : rebase_source : 64f289ed18a90c4d2c6988935a5865b41367f976
2016-05-18 17:55:33 +00:00
Dustin J. Mitchell 120576c2a9 Bug 1273673: use Python logging for taskgraph generation; r=gps
MozReview-Commit-ID: EYI6hGFUWP8

--HG--
extra : rebase_source : 06095357cec152790c6025184e4c7c49e5d03835
2016-05-18 18:02:51 +00:00
Dustin J. Mitchell cea2249ca3 Bug 1258497: Implement a new taskgraph generation system; r=gps
The `taskgraph` package generates TaskCluster task graphs based on collections
of task "kinds".  Initially, there is only one kind, the "legacy" kind, which
reads the YAML files from `testing/taskcluster/tasks` to generate the task
graph.

Try syntax is implemented by filtering the tasks in the taskgraph after it has
been created, then extending the result to include any prerequisite tasks.

A collection of `mach taskgraph` subcommands are provided for developers to
extend or debug the task-graph generation process.

MozReview-Commit-ID: 1TJCns4XxZ8

--HG--
rename : testing/taskcluster/docs/index.rst => taskcluster/docs/index.rst
extra : rebase_source : 7b9125281d66044db9bd8e4a1fade16136f384b9
extra : histedit_source : 47640d27080acda0279270babbcf33f5badb0d1c
2016-05-16 22:53:22 +00:00