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

33 Коммитов

Автор SHA1 Сообщение Дата
Jonas Finnemann Jensen 2cd49e189e Bug 1316183 - Compress docker images with zstd. r=dustin
* Compress docker images with zstd
 * Removed need for context.tar from decision task
 * Index images by level rather than project

MozReview-Commit-ID: 4RL4QXNWmpd

--HG--
extra : rebase_source : 677d8030a15af3288866a70fc648a10b22c396a3
2016-11-07 11:26:27 -08:00
Joel Maher bbfd3040db Bug 1315145 - disable SETA on tier-1 platforms temporarily. r=dustin
MozReview-Commit-ID: 2royNntQxB2

--HG--
extra : rebase_source : b77fa8845d2b7e3370e2470370f280114644b906
2016-11-07 13:39:23 -05:00
Kim Moir c488cc0a40 Bug 1296396 - remove configs that reference fx-team in tc and buildbot u=aselagea r=kmoir 2016-11-02 10:53:19 -04:00
Joel Maher 126f255c68 Bug 1313426 - gecko decision task: ValueError: No JSON object. fix SETA. r=dustin a=bustage-fix
MozReview-Commit-ID: F4V3VcDHMnW
2016-10-27 15:12:33 -04:00
MikeLing d36cf3f20a Bug 1287018: consult the SETA service to determine low-value tasks; r=dustin
MozReview-Commit-ID: nvtRNUxytR

--HG--
extra : rebase_source : 1348ebe7c623b85d7614925b9f95f2f59f7ffa13
2016-10-20 22:16:39 +00:00
Dustin J. Mitchell bfea831cd8 Bug 1286075: delete the legacy kind; r=mshal
MozReview-Commit-ID: F99tUGUWj6d

--HG--
rename : taskcluster/ci/legacy/routes.json => testing/mozharness/configs/routes.json
extra : rebase_source : a437dd30dac1add3f439a98a8d910d2bdbcc843f
2016-09-08 00:31:35 +00:00
Dustin J. Mitchell 7fa48ca716 Bug 1286075: factor load_yaml into a util module; r=gps
MozReview-Commit-ID: DPWZWslcphy

--HG--
extra : rebase_source : 003971b8caf20565f03a800ae5712fe775366e92
2016-09-06 18:01:27 +00:00
Dustin J. Mitchell 23bf4c2928 Bug 1286075: improve dict merging support; r=gps
MozReview-Commit-ID: D3691sf2LqZ

--HG--
extra : rebase_source : 7ee2444782b1354d5a4edcfc55c3044b292fcc46
2016-08-19 18:12:40 +00:00
Gregory Szorc e4bcb10295 Backed out changeset 7a3a65ff5865 (bug 1295486) for test failures 2016-08-18 10:21:26 -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 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 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 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 e44882ed6d Bug 1288567 - Pass topsrcdir into create_context_tar; r=dustin
Relying on global variables like GECKO is a bit dangerous. To facilitate
testing of archive generation in subsequent commits, let's pass an
path into this function.

The argument is currently unused.

MozReview-Commit-ID: Et1UYraflDP

--HG--
extra : rebase_source : 012095bc2450c72467f3f65f71bcb4cf6efcde66
2016-07-22 10:32:58 -07:00
Gregory Szorc fd01511ec7 Bug 1288567 - Use deterministic tar archive generation; r=dustin
We recently implemented code in mozpack for performing deterministic
tar file creation. It normalizes things like uids, gids, and mtimes
that creep into archives.

MozReview-Commit-ID: 1tn5eXkqACQ

--HG--
extra : rebase_source : 6b069a3a50c9103ae4f6185b26d6a37658179f42
2016-07-22 10:29:58 -07:00
Gregory Szorc edbd669eca Bug 1288567 - Extract function for creating context tars; r=dustin
Upcoming commits will refactor how context tarballs are created. In
preparation for this, we establish a standalone function for creating
context tarballs and refactor docker_image.py to use it.

MozReview-Commit-ID: KEW6ppO1vCl

--HG--
extra : rebase_source : b81decf9ca14ff0216514f47419e96eb57d6f851
2016-07-22 10:20:06 -07:00
Dustin J. Mitchell f243f622ac Bug 1281004: remove now-unused yaml task definitions; r=Callek
MozReview-Commit-ID: xxjjlIYAma

--HG--
extra : rebase_source : bcef830fb9d729f985449d3a0819f8abd55c3d6c
extra : histedit_source : 7a0bf6b745875d4b06553fcc476dba5772bc831f
2016-07-10 14:27:41 +00: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
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
Kalpesh Krishna 3112858067 Bug 1284005 - Replacing timestamps with relative timestamps. r=dustin 2016-07-06 03:03:00 +02:00
Ryan VanderMeulen 93a1a23b6b Backed out changeset 320ee1117179 (bug 1284005) for gecko-decision task failures. 2016-07-07 00:16:45 -04:00
Kalpesh Krishna 110a36bb4b Bug 1284005 - Replace timestamps with relative timestamps. r=dustin
--HG--
extra : rebase_source : 0628ff7f93cab9e690fd9d7015783cbc6048d058
2016-07-06 03:03:00 -04:00
Carsten "Tomcat" Book 1add070144 Backed out changeset 8c9ee38712de (bug 1284005) for gecko-decision task failures 2016-07-07 05:56:00 +02:00
Kalpesh Krishna 84704cb30e Bug 1284005 - Replacing timestamps with relative timestamps.
--HG--
extra : rebase_source : 4b7e931d33208e987932d41761725e2769de42a8
2016-07-06 03:03:00 +02:00
Carsten "Tomcat" Book fb7e5c4f86 Backed out changeset cc4009e9cecc (bug 1284005) for causing merge conflicts when merging to m-c
--HG--
extra : rebase_source : 1076f58b4aa748ddc35920d1591bb99b8c1a7358
2016-07-06 11:49:59 +02:00
Kalpesh Krishna 2445bb037a Bug 1284005 - Replacing timestamps with relative timestamps. r=dustin 2016-07-05 11:50:50 -07: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 bc7503149a Bug 1171736 - Don't force extra-builds to attempt job generation, if no matching job is defined for this branch. r=dustin
MozReview-Commit-ID: BNBOcUpprfm
2016-06-14 14:12:30 -04: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