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

1679 Коммитов

Автор SHA1 Сообщение Дата
George Hickman d36bb8ab76 Bug 1469777 - Fix FTS search query sanitising 2018-07-03 11:45:54 +01:00
George Hickman 4a67a7f6ce Remove unused/always True AUTOCLASSIFY_JOBS setting 2018-07-02 13:22:18 +01:00
George Hickman c8b114105c Pull ETL settings into appropriate modules 2018-07-02 13:22:18 +01:00
ionutgoldan d96936ccb9 Bug 1463699 - Make perf alert API handle users with multiple accounts (#3638)
Previously users who had multiple accounts with the same email address
(but different login methods) would receive exceptions when trying to
create/edit performance alerts. Now the unique `username` field is used
from the Django User model, instead of the non-unique `email`.
2018-06-21 18:24:47 +01:00
George Hickman 316e3fd79d Revert removal of best_classification and best_is_verified (#3686)
This reverts commit c32e9e4f2c.
(And adjusts the test so it passes.)
2018-06-20 18:40:43 +01:00
George Hickman 4556e20ccb Get best_classification and best_is_verified from TextLogErrorMetadata
Since we can use TextLogErrors in most of the tests this allows us to
also remove all the zips combining FailureLines and TextLogErrors.
2018-06-20 02:57:33 -07:00
Cameron Dawson 15721f009c
Bug 1450022 - Convert the rest of Details Panel to ReactJS (#3621) 2018-06-13 15:40:38 -07:00
Sarah Clements b1585c2ac1 Bug 1339937 - IFV show unexpected fails (#3620)
modify failuresByBug api to include test-unexpected-fail lines per job; modify bugdetails UI to include failure counts and tooltip with lines
2018-06-08 12:05:15 -07:00
George Hickman d95aa52e1f Rename and document what create_match method does 2018-06-07 10:25:37 +01:00
George Hickman f6617ec460 Pull mark_best_classification into auto-classification
This method was exclusively used in auto-classification making it better
suited to live there.  As an added benefit we can remove some complexity
because we know all TextLogError instances in auto-classification have
related FailureLines.
2018-06-07 10:25:37 +01:00
George Hickman 63dd2c8da4 Pass ClassifiedFailure instances when marking them as best
Save a database lookup of objects we already have.
2018-06-07 10:25:37 +01:00
George Hickman af7d9a855a Strip marking best classification from set_classification 2018-06-07 10:25:37 +01:00
George Hickman e5a17b8634 Remove FailureMatch model 2018-06-05 14:16:09 +01:00
George Hickman ef51753f27 Remove M2M relation between FailureMatch and ClassifiedFailure 2018-06-05 14:16:09 +01:00
George Hickman 0cb2387540 convert matchers to functions
Now that matchers are all confined to a single method it's easier to
handle them as functions.
2018-06-04 07:32:23 +01:00
George Hickman cf28cd2b29 Remove unused method 2018-06-04 07:32:23 +01:00
George Hickman e72d3fd4e9 Pull score_matches and time_boxed into a separate module 2018-06-04 07:32:23 +01:00
George Hickman 3440b57cb5 Save TextLogErrorMatch instances to the DB
We're not using TextLogErrorMatch.create since the instances were
already created, just not saved to the DB.
2018-06-01 13:30:11 +01:00
George Hickman a9e696e5f6 Apply a list of matchers to each error and return unsaved Match objs
Flip the matching algorithm to apply a given list of Matchers to each
TextLogError instead of giving each matcher N errors to find matches
for.  This allows us to yield scored ClassifiedFailured IDs to create
in-memory (unsaved!) TextLogErrorMatch instances and avoid passing
around tuples too often.

Note: this means we're also dropping the cut off when scoring.
2018-06-01 13:30:11 +01:00
George Hickman 4dd71e0f1f
Consolidate *Match Models (#3598)
* Remove unused methods

* Use TextLogError.set_classification instead of FailureLine's version since they're the same effective code it's better to have a single entry point.

* Remove FailureLine.mark_best_classification_verified for TextLogError's to create a single place to mark a classification as verified.

* Get related FailureLine in a clearer way

* Only save changed fields

* Use decorator form of transaction.atomic to avoid extra indentation

* Use count on QuerySets instead of len since len() triggers a DB query and then counts the objects in memory while .count() triggers a query returning the result.

* Pull classified failure we're comparing against out into a variable

* Get objects from the db instead of refreshing in place

* Remove use of FailureMatch object/relation in favour of TLEMatch

* Manually build the matches output for the failure lines API

* Pull expected object out of list

* Manually build the classified failures output for the failure lines API
2018-06-01 12:19:27 +01:00
George Hickman 07f54fa92c remove registration of Matcher classes in the database 2018-06-01 12:12:07 +01:00
George Hickman 90d2382269 Use Matchers class names instead of the equivalent model instance 2018-06-01 12:12:07 +01:00
George Hickman 2b2844e545 Switch to *Match.matcher_name field
This also removes the Detectors since it wasn't possible to do them
separately.
2018-05-29 14:58:52 +01:00
George Hickman ba0d8550b0 Switch to using matcher_name 2018-05-29 14:58:52 +01:00
Cameron Dawson eddbc1c8a7
Bug 1450039 - Convert Models for accessing API data to Classes (#3568) 2018-05-25 10:32:21 -07:00
ionutgoldan 6becf445a3 Bug 1443777 - Bug links from old alert summaries are broken (#3560)
Make issue_tracker column non nullable and fix broken tests
2018-05-23 11:13:51 -04:00
George Hickman 94f7c3aaa0 Assign ClassifiedFailures to *Match instances directly with ID 2018-05-18 08:51:11 +01:00
Sarah Clements bf3d680f52 Bug 1445527 - Add machine name column to IFV (#3541)
add to bug details view and update tests
2018-05-14 18:42:05 +01:00
Sarah Clements acbbb1b4ce Bug 1460053 - intermittent_failures endpoint tests (#3540) 2018-05-14 10:58:26 +01:00
Ed Morley 55654a1195
Bug 1363722 - Allow login to work in all development workflows (#3534)
Previously it was not possible to test features that required an
authenticated user when:
* using `yarn start` with Vagrant (bug 1363722), which meant slower
  watch builds
* pointing the UI at the prod/stage API (bug 1317752), which was
  extremely limiting

Now login works in all environments, since the frontend no longer uses a
URL prefix, but instead webpack-dev-server proxies non-webpack URLs to
the chosen `BACKEND_DOMAIN` - avoiding cross-domain issues. Cookies are
rewritten to remove any `secure` directive (which is set on production),
so that they can still be read from HTTP localhost. The `Referer` has to
also be changed to stop Django's CSRF checks from rejecting request.

The slower "build into `dist` and watch" mode is therefore no longer
necessary, so `yarn start:local` instead invokes webpack-dev-server just
like `yarn start` - and the `local-watch.js` workaround has been
removed.

Support for the "publish to GitHub with hardcoded `SERVICE_DOMAIN`"
workflow has been dropped, since it was already rarely used and there is
no way to make it support login.

The API domain environment variable was renamed to `BACKEND_DOMAIN` to
avoid potential confusion given it no longer behaves the same as
`SERVICE_DOMAIN` used to.

NB: For full stack Vagrant workflows users must now connect to port
*5000* on localhost, not 8000.
2018-05-10 17:58:04 +01:00
ionutgoldan 9a47ad307c Bug 1451661 - Highlight significant alerts from alert summary (#3469) 2018-05-09 15:42:01 +01:00
George Hickman a01b94e4fb Add tests for PreciseTestMatcher 2018-05-04 08:57:50 +01:00
George Hickman cec419b99a Extract getting the best score from an iterable of TextLogErrorMatchs 2018-05-04 08:57:50 +01:00
George Hickman 37b06a212b Pull score expansion out into a separate function and test 2018-05-04 08:57:50 +01:00
George Hickman f6d76c9bd0 Add the time_boxed function
A generic function to timebox calling a function on each item in an
iterable.
2018-05-04 08:57:50 +01:00
George Hickman 46d4602d3f Add chunked_qs_reverse function
This is a separate function to chunked_qs to keep both functions simple
and easy to read.  Both functions contain some inherent complexity since
they are windowing functions and it's important to not hide that below
multiple conditional branches.
2018-05-04 08:57:50 +01:00
Tom Prince 7bb04c879f Bug 1455448 - Use new index for decision tasks (#3510) 2018-05-02 21:41:47 +01:00
Cameron Dawson 46763562e5
Bug 1457205 - Convert Job Details tab to ReactJS (#3491) 2018-04-26 11:54:24 -07:00
Ed Morley 47ac771a84 Bug 1456894 - Import jQuery explicitly
The last remaining `ProvidePlugin` definition cannot be removed since
AngularJS and Flot both expect `window.jQuery` to be defined (and
whilst AngularJS falls back to jqLite, it's buggy). It's not possible
to set `window.jQuery` manually in the entrypoints, since ES6 imports
are hoisted, thereby giving no opportunity to modify window first.
2018-04-25 19:48:41 +01:00
Ed Morley f522727087 Bug 1456894 - Import React explicitly
Rather than relying on `ProvidePlugin`.
2018-04-25 19:48:41 +01:00
Ed Morley cc64c07802 Bug 1456894 - Import lodash explicitly
Rather than relying on `ProvidePlugin`.
2018-04-25 19:48:41 +01:00
Cameron Dawson 5d23735359
Bug 1446427 - Convert Autoclassify panel to ReactJS (#3414) 2018-04-24 12:39:06 -07:00
George Hickman b787f78cce Move tests to internal ES wrapper 2018-04-24 15:45:48 +01:00
George Hickman e34c8ed2fb Replace refreshing an index with internal ES wrapper 2018-04-24 15:45:48 +01:00
Dave Hunt 03fd3d7f7e Use loaded property in PyPOM pages instead of overriding wait_for_page_to_load 2018-04-18 14:34:19 +01:00
Dave Hunt e63ff9d8bd Migrate test_get_next_results to Travis suite 2018-04-18 13:28:13 +01:00
Dave Hunt c6838b5ba9 Remove orphaned code from tests/jenkins 2018-04-16 14:51:20 +01:00
Ed Morley 023d31885a
Bug 1453850 - Enable Python 2's `-3` mode on Travis (#3444)
This enables `DeprecationWarnings` for things that Python 2 knows
are not compatible with Python 3. The `error` entry in the pytest
`filterwarnings` setting ensures these will be surfaced as Exceptions
and so result in test failures.

See:
https://docs.python.org/2/using/cmdline.html#cmdoption-3

The removal of `sorted()` from `test_bug_job_map_api.py` is to fix:
`DeprecationWarning: dict inequality comparisons not supported in 3.x`
2018-04-13 23:14:36 +01:00
Ed Morley a5023192e9
Bug 1453482 - Use d-r-f's APIClient instead of WebTest's TestApp (#3439)
To avoid unnecessary dependencies, and use a more conventional
django-rest-framework testing approach:
http://www.django-rest-framework.org/api-guide/testing/#apiclient

APIClient has a few API differences:
* `.json` -> `.json()`
* `.status_int` -> `.status_code`
* Get parameters are passed as keyword argument `data` not `params`
* The default hostname is `http://testserver` not `http://localhost`
* Additional HTTP headers are passed directly as keyword arguments,
  rather than nested under a `headers` property.
* It doesn't check the status code itself, so explicit checks are
  required, along with removing `expect_errors`.
* The `.post_json()` and `.put_json()` methods don't exist.

See also the docs for the Django test client (which APIClient wraps):
https://docs.djangoproject.com/en/1.11/topics/testing/tools/#the-test-client

Whilst making these changes, I also cleaned up the session fetching
in `test_auth.py` and `test_backends.py`, and added a `status_code`
check in `conftest.py`'s `mock_post_json()` - which makes the root
cause of test failures clearer.
2018-04-12 18:06:53 +01:00
Ed Morley 2800a878b7
Bug 1389517 - Remove usages of deprecated pypom .selenium property (#3441)
Fixes:
`pypom/view.py:21: DeprecationWarning: use driver instead`
2018-04-12 15:27:48 +01:00
Dave Hunt c6eb87308d Bug 1453588 - Improve Selenium tests by adding explicit waits 2018-04-12 13:48:05 +01:00
Dave Hunt 8373313781 Migrate test_unclassified_job to Travis suite 2018-04-11 21:20:42 +01:00
Dave Hunt a613cd6b21 Improve test_pin_jobs by adding explicit waits for the jobs to be displayed 2018-04-11 16:58:02 +01:00
Ed Morley c31e1dcc81
Bug 1453297 - Remove datadiff (#3435)
Since `pytest -vv` displays useful diffs on its own now.
2018-04-11 13:26:42 +01:00
Dave Hunt bb02a36807 Create a helper method for keyboard shortcuts 2018-04-11 12:13:04 +01:00
Dave Hunt cf719dc059 Migrate test_keyboard_shortcuts to Travis suite 2018-04-11 12:13:04 +01:00
Ed Morley a33a22cd1f Bug 1452212 - Don't use len() to check if sequences are empty
Fixes pylint `len-as-condition`.
2018-04-10 20:10:27 +01:00
Ed Morley 3310083cb1 Bug 1452212 - Use unicode literals in test_text.py
Fixes pylint:
```
tests/etl/test_text.py:34,0: Anomalous Unicode escape in byte string:
'\U'. String constant might be missing an r or u prefix. (W1402:
anomalous-unicode-escape-in-string)
```
2018-04-10 20:10:27 +01:00
Ed Morley b3ceeef597 Bug 1452212 - Remove duplicate imports
These are all imported at the top of the file already.

Fixes pylint `reimported`.
2018-04-10 20:10:27 +01:00
Ed Morley 82c81cdfbe Bug 1452212 - Fix over-indentation
Fixes pylint `bad-indentation`.
2018-04-10 20:10:27 +01:00
Ed Morley 3edd5fdc99 Bug 1452212 - Remove superfluous whitespace
Fixes pylint `bad-whitespace`.
2018-04-10 20:10:27 +01:00
Ed Morley dfb91271f0 Bug 1452212 - Add missing raw string annotations
Fixes pylint `anomalous-backslash-in-string`.
2018-04-10 20:10:27 +01:00
Ed Morley 6eaf49ab43 Bug 1452212 - Remove unused variables
As reported by pylint 'unused-variable'.
2018-04-10 20:10:27 +01:00
Ed Morley 08437cfbf2 Bug 1452212 - Fix some of the pylint 'bad-continuation' warnings
The others were too nitpicky so were left as-is.
2018-04-10 20:10:27 +01:00
Ed Morley c8ca4b51d5 Bug 1452420 - Cast dict .{keys,values}() to list where necessary
Since in Python 3 they return iterators rather than lists, so if
used in contexts where iterators are not supported must first be
cast to `list`.

These cases weren't caught by pylint `dict-keys-not-iterating` and
`dict-values-not-iterating` (since it isn't able to infer the type
of anything but straightforward `dict` usages), but instead by manual
auditing.

Instead of casting `resp.json.keys()` in `test_performance_data_api.py`
the asserts have been removed, since they were duplicating the
coverage provided by the `assert` on the next line.
2018-04-10 19:22:28 +01:00
Ed Morley 42acc29e6c Bug 1452420 - Add `from __future__ import division`
Adds the future import anywhere we use division, for consistency
between Python 2 and 3. Some instances of division required casting
to int, since the new division always returns float, even when
dividing by in int.

See:
https://eev.ee/blog/2016/07/31/python-faq-how-do-i-port-to-python-3/#division-always-produces-a-float

Fixes pylint `old-division`.
2018-04-10 19:22:28 +01:00
Ed Morley 02d3c625c7 Bug 1452420 - Cast Python 3 map/filter iterators where necessary
Python 3's `map()`, `filter()` and others now return iterators rather
than list/..., so must be cast back to a `list()` if used in contexts
where an iterator is not supported.
2018-04-10 19:22:28 +01:00
Ed Morley 5d6cb2371c Bug 1452420 - Make .iter{items,keys}() usages Python 3 compatible
Fixes pylint `dict-iter-method` (and many more, since pylint missed
most of them, sigh).
2018-04-10 19:22:28 +01:00
Dave Hunt fd1d2e5661 Migrate test_pin_jobs to Travis suite 2018-04-10 19:21:54 +01:00
Dave Hunt 7beb3cacc3 Migrate test_filter_jobs to Travis suite 2018-04-06 21:49:21 +01:00
Dave Hunt f774b7d6d0 Improve the fixtures for creating test jobs 2018-04-06 21:49:21 +01:00
Dave Hunt 38d0557a0b Migrate test_filter_jobs_by_author to Travis suite 2018-04-06 19:52:17 +01:00
Dave Hunt 572c75d8ec Migrate test_expanding_group_count to Travis suite 2018-04-06 15:59:51 +01:00
Ed Morley 20ca827cc0 Bug 1451518 - Use absolute instead of relative imports
Relative imports found by running:
`futurize -w -n -f absolute_import .`

...however then hand-edited to convert to absolute, and the newly added
`from __future__ import absolute_import` removed (since we mostly
don't use relative imports, and PEP8 prefers absolute).
2018-04-05 12:07:20 +01:00
Ed Morley e4b0f53788 Bug 1451518 - Add more 'from __future__ import print_function'
Generated by running:
`futurize -w -n -f print_with_import .`

...and then cleaning up import style using `isort -y`.

See:
39a066ed8c/src/libfuturize/fixes/fix_print_with_import.py
2018-04-05 12:07:20 +01:00
Cameron Dawson 0b5fec254a
Bug 1449240 - Convert Angular values.js to import-able constants (#3378)
After looking at these, I think I want to go back to using "th" prefix and "ph" prefix.
It is a nice way to see right off the bat that these are constants that are established
by our code and not some external library.  So converting ``platformMap`` back to
``thPlatformMap``.  It also makes for less code/blame churn as we move to imported
constants.

* Move thOptionOrder to constants.js
* Move thFailureResults to constants.js
* Move thRepoGroupOrder to constants.js
* Move thFavIcons to constants.js
* Move phCompareDefaultOriginalRepo to constants.js
* Move phCompareDefaultNewRepo to constants.js
* Move thDefaultRepo to constants.js
* Move thTitleSuffixLimit to constants.js
* Move phTimeRanges to constants.js
* Move thDateFormat to constants.js
* Move phDefaultTimeRangeValue to constants.js
* Move phTimeRangeValues to constants.js
* Move phBlockers to constants.js
* Move phDefaultFramework to constants.js
* Move phAlertSummaryStatusMap to constants.js
* Move phAlertSummaryIssueTrackersMap to constants.js
* Move phAlertStatusMap to constants.js
* Move thJobNavSelectors to constants.js
* Move thPerformanceBranches to constants.js
* Move phDashboardValues to dashboard.js
* Move phCompareBaseLineDefaultTimeRange to constants.js
* Move thPinboardCountError to constants.js
* Remove now-unused values.js
* Move thResultStatusFilters to constants.js
* Move thEvents to constants.js
* Move thAggregateIds to a aggregateIdHelper.js
* Move thReftestStatus to jobHelper.js
* Remove now-unused provider.js
2018-04-04 10:01:17 -07:00
ionutgoldan aa40c6a7e4 Bug 1376829 - Add notes to alert summaries (#3345) 2018-04-03 09:15:27 -04:00
William Lachance 17e391db09
Bug 1447593 - Fix calculation of last updated time in Perfherder signatures (#3359) 2018-03-22 15:43:26 -04:00
George Hickman 37bd9fe649 Bug 1428045 - Add future imports to turn print statements into functions 2018-03-21 11:56:27 +00:00
George Hickman f7d97026a9 Bug 1428045 - Mark string as raw
This stops occurrences of `\u` (such as in Windows paths) being
interpreted as malformed Unicode points.
2018-03-21 11:56:27 +00:00
George Hickman 9cdeb4665a Bug 1428045 - Convert print statments to print functions 2018-03-21 11:56:27 +00:00
George Hickman a14b4774ca Bug 1428045 - Write tests for unicode filtering 2018-03-21 11:56:27 +00:00
Stephen Donner f3035884db Jenkins: Update Firefox via Sauce to 59.0 (#3343) 2018-03-15 11:51:49 +00:00
Ed Morley 85ecbc1e5c
Bug 1310241 - Switch to the cache-based Django session engine (#3337)
The cache-based engine stores session data in our Redis cache rather
than in the `django_sessions` table in the MySQL database.

This has several advantages:
* faster access (session lookups occur for virtually all API requests)
* expired sessions are automatically cleaned up (the database engine
  requires that the `clearsessions` command be run periodically)
* fewer secrets being stored in the database and its backups

See:
https://docs.djangoproject.com/en/1.11/topics/http/sessions/#configuring-sessions
https://docs.djangoproject.com/en/1.11/ref/settings/#session-engine

We're not concerned about very occasional session loss, so don't need
the persistence guarantees of the related `cached_db` engine.

The `INSTALLED_APPS` entry is being removed since it's only purpose
is to load the session database model.

The tests have been adjusted to use the proper sessions API (rather
than directly accessing the session DB model) per:
https://docs.djangoproject.com/en/1.11/topics/http/sessions/#using-sessions-out-of-views
2018-03-13 23:25:54 +00:00
Stephen Donner 8de98e60f2 Jenkins: Bump pytest to latest, 3.4.2 (#3335) 2018-03-13 11:29:40 +00:00
Cameron Dawson cca48d14df
Bug 1444134 - Consolidate references to SERVICE_DOMAIN (#3319)
* Don't use SERVICE_DOMAIN for references to the front-end code
* Change getRootUrl to getApiUrl to better represent what it is for
* Convert other usages of SERVICE_DOMAIN to getApiUrl
* Convert usages of SERVICE_DOMAIN to getProjectUrl
* Convert uses of SERVICE_DOMAIN to getServiceUrl
* Convert tests to use ``urlHelper``
2018-03-08 15:48:31 -08:00
Cameron Dawson 6e2242b2c5 Bug 1443667 - Fix 'tier' not yet assigned when getJobGroupInfo() creates map 2018-03-08 08:26:25 -08:00
Cameron Dawson cffdb1b0f2
Bug 1442556 - Fix slowness on filtering (#3309)
I believe this was the main bug causing the slowdown.  It was setting state
in ``filterPlatform`` which is called once per platform when a filter change is
made.  But that ``setState`` was updating ALL the platforms for that push.

* Remove unnecessary clonejobs artifact
* Fix the regression with expand/collapse counts
* Very minor optimizations and cleanup
* Add some unit tests for groups
2018-03-07 08:38:44 -08:00
Cameron Dawson b8076190d3
Bug 1441700 - Consolidate job details pane (#3291)
* Move JobDetailsPane to details-panel folder
* Convert to 2 space indent
* Cleanup props with deconstruction
* Subsume some filters into jobdetailspane
* Subsume logic for job signature filtering
* Subsume logic for visibleFields and visibleTimeFields
* Only need latest classification, not whole array
* Ensure all helper functions are named
2018-03-03 10:04:19 -08:00
Cameron Dawson 2240fbd3a9
Bug 1441912 - Replace thUrl angular provider with urlHelper lib (#3285)
* Move getBugUrl, getSlaveHealthUrl, getInspectTaskUrl, getWorkerExplorerUrl,
  getLogViewerUrl, getRootUrl, getProjectUrl and getProjectJobUrl to urlHelper
* Move getJobsUrl to only place its used
* Replace thServiceDomain with SERVICE_DOMAIN
* remove thUrl provider
2018-03-01 16:00:28 -08:00
Stephen Donner ee3699fdb2 Jenkins: Update requirements to latest (#3290) 2018-03-01 18:07:05 +00:00
Ed Morley b3d02f3874 Bug 1441617 - Convert CJS imports to ES6
This converts virtually all of the CJS imports, apart from:
* the partials/plugin template loading in cache-loader - since that
  is being handled in bug 1441614
* `.eslintrc.js` / `neutrino-custom/*` - since they are used by node
  directly (which doesn't yet support ES6 modules) rather than via
  webpack.

File extensions have been omitted for JS/JSX, otherwise eslint reports:
`Unexpected use of file extension "js" for "..." (import/extensions)`
2018-03-01 01:42:49 +00:00
Ed Morley ebe97fa18e Bug 1441617 - Always import mousetrap explicitly
...rather than relying on `window.Mousetrap`.

And also switch to ES6 imports.
2018-03-01 01:42:49 +00:00
Ed Morley 800b31b719 Bug 1441617 - Always import angular explicitly
...rather than relying on `window.angular`.

And also switch to ES6 imports.
2018-03-01 01:42:49 +00:00
Ed Morley a8e09c5786 Bug 1441617 - Use ES6 imports for angular module dependencies
An AngularJS module declares a dependency on another module like so:
```
const fooModule = angular.module('foo', ['name_of_dep_module']);
```

This is suboptimal, since:
a) the dependency is only validated at runtime not during the build
b) the module name often doesn't match the NPM package name, making
   it hard to know whether imports are unused.

As such, many AngularJS packages now export a string containing the
module name, which allows for an ES6-like approach (it still uses
globals underneath, but better than nothing):
```
import nameOfDepModule from 'dep-module';

const fooModule = angular.module('foo', [nameOfDepModule]);
```

Just to complicate things, some modules don't export the module name,
but the actual module object itself. This can't be passed to
`angular.module()` directly, so for these modules we have to use the
`name` property on the module instead:
https://docs.angularjs.org/api/ng/type/angular.Module#name

eg:
```
import depModuleObject from 'awkward-dep-module';

const fooModule = angular.module('foo', [depModuleObject.name]);
```

In fact, the treeherder modules do just that - however its not worth
fixing, since otherwise we'd have to change every file that registers
directives/filters/values/... to fetch the module first, using
`angular.module('name-of-existing-module')`.
2018-03-01 01:42:49 +00:00
Ed Morley 3e2e22e132 Bug 1441617 - Switch the treeherder module to ES6 exports
This is the shared module that is a dependency of the `treeherder.app`,
`perf` and `logviewer` modules.
2018-03-01 01:42:49 +00:00
Ed Morley 7bab404d40 Bug 1441617 - Switch the perf module to ES6 exports 2018-03-01 01:42:49 +00:00
Ed Morley 588947856a Bug 1441617 - Switch the treeherder.app module to ES6 exports
This module is for use by the `index` entrypoint, and inherits from
the shared `treeherder` module.
2018-03-01 01:42:49 +00:00
Ed Morley 6053d8110a Bug 1441617 - Switch the logviewer module to ES6 exports 2018-03-01 01:42:49 +00:00
Ed Morley ce7ad5cc0e Bug 1441617 - Switch the userguide module to ES6 exports
And whilst we're there, use explicit imports instead of relying on
the webpack `ProvidePlugin` to import it for us - which lets us also
remove the eslint global exemption plus unit test workaround.
2018-03-01 01:42:49 +00:00
Ed Morley bd870cf8ce
Bug 1441493 - Use rel="noopener" for all target != null links (#3275)
This helps prevent:
https://www.owasp.org/index.php/Reverse_Tabnabbing

We're not also using `noreferrer`, since most browsers now support
`noopener` (https://caniuse.com/#search=noopener) and the link targets
are all Mozilla properties where the referrer may be useful.

The auth.js `window.open()` has not been changed, since the login
callback makes use of `window.opener`.
2018-02-27 19:17:42 +00:00
Ed Morley 32f303199d
Bug 1441164 - Remove unused AngularJS code (#3267)
Found with the help of `list-angular-usages.sh`.
2018-02-26 21:10:11 +00:00
Cameron Dawson 18467a18d5 Bug 1440057 - Rename resultset wording to push wording 2018-02-23 17:18:56 -08:00
Cameron Dawson 324a37bf10 Bug 1440057 - Remove reference to repoName in ThResultSetStore functions 2018-02-23 17:18:56 -08:00
Ed Morley e095944a37
Bug 1440774 - Convert AngularJS dependency factories to ES6 imports (#3262)
Since it's the cleaner way to declare dependencies and is another
small step towards migrating away from AngularJS.
2018-02-23 22:51:09 +00:00
allan.silva 3e99509b86 Bug 1307488 - Make job_loader work with one job at a time (#3239) 2018-02-22 16:40:47 -08:00
Stephen Donner da9cc80f8e Jenkins: Add Groovy hashbang (#3254) 2018-02-22 19:45:19 +00:00
Cameron Dawson a11e49281b
Bug 1438492 - Fix tooltip for commit messages and authors (#3249) 2018-02-21 14:16:55 -08:00
ionutgoldan 0badc9ec5f Bug 1428032 - Allow linking Perfherder alerts to Servo GitHub PRs (#3211) 2018-02-21 15:03:20 +00:00
Cameron Dawson f984acf9a8
Bug 1434677 - Convert rendering list of pushes from angular to ReactJS (#3206)
This adds some new components and removes the AngularJS ng-repeat for
pushes.  In the course of this work, some of the AngularJS providers were
converted to helper functions.

In a couple cases, I had to add new code to the AngularJS areas so that it
would continue to interact well between Angular and React.

Also:
* Rename some functions and CSS classes from resultset to push
* Add unlistening for events during unmount of components
2018-02-20 10:31:11 -08:00
Ed Morley 028da62156
Remove hardcoding of bug numbers in API tests (#3240) 2018-02-18 17:16:40 +00:00
Ed Morley 5052c5dfaa
Revert BugJobMap foreign key part of 4db1aa4 (bug 1367362) (#3236)
Since unfortunately the migration failed on stage due to:
```
IntegrityError: (1452, 'Cannot add or update a child row: a foreign
key constraint fails (`treeherder`.`#sql-1c26_1936a5`, CONSTRAINT
`bug_job_map_bug_id_013db14b_fk_bugscache_id` FOREIGN KEY (`bug_id`)
REFERENCES `bugscache` (`id`))')
```

I believe this is due to the fact that bug numbers are sometimes
manually entered when classifying failures (eg for infra failures),
meaning that not every bug ID in `BugJobMap` is for an intermittent
bug, and so doesn't exist in `Bugscache` (which is currently only
populated with bugs that have the keyword `intermittent-failure`).

This wasn't caught on prototype, since whilst that has some failure
classifications saved, none of them where hand-entered and so all
existed in `Bugscache`, satisfying the new constraint.

I've edited the existing migrations file since in most environments
it won't have already run (I'll fix up prototype/stage by hand). The
non-FK changes have been left as-is, since they are working fine.
2018-02-16 21:51:08 +00:00
Sarah Clements 4db1aa4210 Bug 1367362 - Model changes to support intermittents view (#3182)
change BugJobMap bug_id field to foreign key field to create a join on
Bugscache model; add whiteboard to bugzilla, add index to Push time
field for search by date range; update associated tests
2018-02-16 18:09:08 +00:00
Ed Morley dc8db57b03
Bug 1438501 - Remove failureviewer.html (#3232)
Since it's not being used. This will save us having to convert it to
React for now, and also means one less thing slowing down our builds.
Should it be needed in the future, it can be resurrected using the
Git log.
2018-02-16 10:45:17 +00:00
Dave Hunt f8e9c6f725 Bug 1438469 - Improve InfoPanel.is_open to include check for job result 2018-02-15 14:57:43 +00:00
Ed Morley d0d42ddf7e
Bug 1438060 - Remove unused /push/revisions/ API (#3225)
Since revision details are included in the response from the `/push/`
API, so there's never any need to fetch them separately.

(And if anyone wants more than the first 20 commits, they should be
using hg.mozilla.org's API instead.)
2018-02-14 19:13:41 +00:00
Cameron Dawson f40f3faae7 Bug 1242905 - Replace rendering of pushes and jobs with ReactJS
This replaces the logic that was in clonejobs.js that formerly
handled rendering the pushes, platforms and jobs and converts it to
ReactJS.  The ReactJS code is hosted as a directive in AngularJS
using ngReact reactDirective.

This also removes the feature where you can hide revisions because
it was believed to not be used and added unnecessary complications
to the code.

Co-authored-by: Casey Williams cwillia5@gmail.com
2018-02-13 16:19:14 -08:00
Ed Morley b521523113
Bug 1402992 - Remove all usages of coalesced_to_guid (#3219)
Since after bug 1400069 it is no longer used by the UI.

This removes everything but the Job model field (since the table is
large enough that migrations need to be carefully coordinated, and we
can batch up that change with others).
2018-02-13 18:15:50 +00:00
Ed Morley 28b920ae8b
Bug 1437317 - Don't skip test_jobs_api.py's test_job_error_lines (#3213)
Since bug 1177519 has long since landed. The test needed one small
tweak to take into account bug 1233164.
2018-02-13 17:45:55 +00:00
Ed Morley 0397e82f0e
Bug 1435998 - Fix/enable eslint 'strict' (#3198)
With ES6, the `'use strict'` directives are unnecessary:
https://eslint.org/docs/rules/strict

The directives have been left in the Neutrino configs, since they
are used by node directly, which doesn't yet support ES6 modules.
2018-02-12 16:51:36 +00:00
Ed Morley cfe3a82466
Bug 1436053 - Unvendor jasmine-jquery (#3200)
It has also been updated from v2.0.7 to v2.1.1:
https://github.com/velesin/jasmine-jquery/blob/master/HISTORY.md#211--2015-09-24
https://github.com/velesin/jasmine-jquery/compare/2.0.7...2.1.1
2018-02-12 16:50:41 +00:00
pyup.io bot 9c9a82a56e Update isort from 4.2.15 to 4.3.4 (#3217) 2018-02-12 15:45:42 +00:00
Hassan Ali a74003f41b
Bug 1436943 - Login fails with "Unrecognized identity" when using Google authentication (#3210)
* Allow Google login

Presently, when you login with google you are prompted with a screen
that tells you to login using another provider. However, if you try to
login with google using an LDAP email "@mozilla.com", then there is a
blank page saying Unrecognized identity.

* Add test cases
2018-02-09 09:48:34 -05:00
Hassan Ali e1b0168127
Bug 1395356 - Use auth0 instead of login.taskcluster.net for SSO (#3144)
## Rough summary of the changes

### Front end
The auth callback is written in React and lives under the /login.html endpoint. It communicates with Treeherder using the localStorage.

### Credential expiration
The Django user session expiration is set to expire when the client access token or the id token expires (whichever one expires first). These values are controlled by the IAM team. Presently, the access token expires after 1 day and the id token expires after a week. That being said, the session will therefore expire after 1 day. If you want this value change, we simply need to send a request to the IAM team.

### Credential renewal
Renewals are set to happen every 15 minutes or so. The renewal is skewed slightly so that different open tabs don't renew at the same time. Once renewal happens, both tokens are renewed and the Django session is updated.

### Migration
If the userSession localStorage key is not set, then the user will be logged out including logging out from the Django session. In other words, all users will be automatically logged out when the merge to production happens.
2018-02-07 12:59:30 -05:00
Stephen Donner ae8517fb3b Jenkins: Update pytest-* to latest (#3180) 2018-01-31 10:59:42 +00:00
Ed Morley 20c0fc9c4a
Bug 1433104 - Remove the embeddable push-status page (#3168)
Since it's no longer used & the push status API is likely more
appropriate for most use-cases anyway.
2018-01-30 23:00:03 +00:00
Balaji.G 94a52eb286 Bug 1427375 - Consistently use 'detail' for API error messages (#3178) 2018-01-30 21:05:02 +00:00
Stephen Donner feb6a71207 Update Selenium tests running in Jenkins to Firefox 58 (#3174) 2018-01-30 10:06:09 +00:00
Rob Wood 14bf8c4c8e
Bug 1431427 - Update buildbot etl for new talos profiling suite (#3162) 2018-01-23 15:58:51 -05:00
Dave Hunt 970f8aaa73 Migrate test_filter_jobs_by_result_status to Travis suite 2018-01-22 10:11:54 +00:00
Ed Morley deb1fc86b7 Bug 1384518 - Switch from Memcached to Redis
Since:
* Redis has additional features we need (eg for bug 1409679)
* the Redis server, python client and Django backend are more
  actively maintained (so have persistent connections/pooling that
  actually works, which gives a big perf win)
* we can use Heroku's own Redis addon rather than relying on a
  third-party's (to hopefully prevent a repeat of the certificate
  expiration downtime)

This commit:
* Switches pylibmc/django-pylibmc to redis-py/django-redis, and
  configures the new backend according to:
  http://niwinz.github.io/django-redis/latest/
  https://github.com/andymccurdy/redis-py
* Uses redis-py's native support for TLS to connect to the Heroku
  Redis server's stunnel port directly, avoiding the complexity of
  using a buildpack to create an stunnel between the dyno and server:
  https://devcenter.heroku.com/articles/securing-heroku-redis#connecting-directly-to-stunnel
* Uses explicit `REDIS_URL` values on Travis/Vagrant rather than
  relying on the django-environ `default` value (for parity with
  how we configure `DATABASE_URL` and others).
* Removes the pylibmc connection-closing workaround from `wsgi.py`.

Note: Whilst the Heroku docs suggest using `django-redis-cache`, it's
not as actively maintained, so we're using `django-redis` instead:
https://devcenter.heroku.com/articles/heroku-redis
https://github.com/niwinz/django-redis
https://github.com/sebleier/django-redis-cache

Before this is merged, Heroku Redis instances will need to be created
for stage/production (prototype done) - likely on plan `premium-3`:
https://elements.heroku.com/addons/heroku-redis

We'll also need to pick an eviction policy:
https://devcenter.heroku.com/articles/heroku-redis#maxmemory-policy

Once deployed, the `memcachier-tls-buildpack` buildpack will no longer
be required and can be removed from prototype/stage/prod, along with
the `TREEHERDER_MEMCACHED` environment variable and Memcachier addon.
2018-01-21 14:41:35 +00:00
Dave Hunt bf0d462735 Migrate test_range to Travis suite 2018-01-19 09:58:23 +00:00
Dave Hunt a97a330b9e Improve the stability of the test_select_unclassified_job tests 2018-01-18 16:49:35 +00:00
Ed Morley 03027d8ba9 Bug 1384518 - Tests: Use a cache key prefix when running tests
To prevent them clashing with keys created by running data ingestion
locally in Vagrant.
2018-01-17 11:08:39 +00:00
Ed Morley f8a8188d26 Bug 1384518 - Tests: Clean up cache testing in test_setup.py
* Adjusts the test name and docstring, since there is nothing
  memcached-specific about the test.
* Overrides the default timeout of never to 10 seconds, to prevent
  previous test run values persisting.
2018-01-17 11:08:39 +00:00
Dave Hunt 578e186fe9 Migrate test_select_next_unclassified_job to Travis suite 2018-01-17 08:10:44 +00:00
Stephen Donner 16fca8f785 Jenkins: Update dependencies (#3116) 2018-01-08 19:13:12 +00:00
Dave Hunt c24f62d439
Migrate test_reset_filters to Travis suite 2018-01-08 15:57:14 +00:00
Dave Hunt 2bc6b38494
Migrate test_filter_jobs_by_failure_result to Travis suite 2018-01-08 15:57:14 +00:00
Dave Hunt b5968ff5a9 Migrate test_filter_jobs_by_keywords to Travis suite 2018-01-08 10:00:51 +00:00
Dave Hunt d49c1846fa Use common fixtures in Selenium tests 2018-01-08 10:00:51 +00:00
Ed Morley a83ee853c7
Bug 1427295 - Remove unused angular-cookies (#3076)
Since we don't use any of the functionality provided by it:
https://docs.angularjs.org/api/ngCookies#module-components
2018-01-04 00:25:32 +00:00
Ed Morley 96eef0f86f
Bug 1426902 - Upgrade to React 16 (#3067)
https://reactjs.org/blog/2017/09/26/react-v16.0.html
https://reactjs.org/blog/2017/11/28/react-v16.2.0-fragment-support.html

Replaces #3048/#3068/#3069, since additional changes were required.

Also adjusts the Babili minification settings to work around a bug
in the minification of react-dom (that will hopefully be fixed in
newer versions of `babel-plugin-minify-mangle-names`, that we'll get
as part of Neutrino upgrade):
https://github.com/babel/minify/tree/babel-preset-babili@0.0.11/packages/babel-preset-babili#options

Closes #3069.
2018-01-03 19:49:25 +00:00
William Lachance 0c81ed8e76 Bug 1328985 - Remove project_specific_id compatibility shim (#3030) 2017-12-21 00:37:07 +00:00
Cameron Dawson a7e4848aad
Bug 1366909 - Merge Test view app into Treeherder repository (#3001)
Modify the code to:
* share assets and global settings wherever possible
* update links going both directions
* other small UI tweaks for uniformity with Treeherder
* Fixed a few routing dead-ends on the react side
* Removed the dead TestDetail file we weren't using anyway
* fix production domain urls
2017-12-14 08:03:32 -08:00
Stephen Donner 3a8ff933d0 Jenkins: Correct, permanent fix from Sauce Labs for Firefox 57 (#3026) 2017-12-08 14:46:03 +00:00
Stephen Donner a7b0a0f621 Jenkins: Update to Firefox 57 (#3024) 2017-12-06 18:31:29 +00:00
Ed Morley 82f2b2fe9d
Bug 1346567 - Temporarily disable perfherder data cycling (#3022)
Since it's timing out due to missing indexes, preventing the rest of
the jobs data cycling from taking place (resulting in disk space
usage alerts).
2017-12-06 15:42:31 +00:00
Stephen Donner 7c00e9de7d Jenkins: Upgrade to latest pytest (#3021) 2017-12-06 10:51:08 +00:00
Stephen Donner ffc7fe6c79 Jenkins: Updating pytest-selenium to latest (#3018) 2017-12-05 20:34:03 +00:00
Armen Zambrano G 27489eefab Bug 1288028 - Reduce latency of runnable jobs API
The runnable jobs API now fetches runnable-jobs.json if available and fallsback to
full-task-graph.json.

The new file is less than a tenth of the original file and contains the minimum
amount of data required for the endpoint.

Drop support for full-task-graph.json and 'job_type_description'.
2017-12-05 17:15:12 +00:00
Ed Morley bc0ca97102
Bug 1419965 - Remove the estimated job time remaining backend (#2990)
The UI has already been removed. This cleans up the data ingestion
and removes the `JobDuration` model, however leaves the `running_eta`
field on the `Job` model for the next time that table is touched (since
the table is large, so altering the schema would likely require
downtime).
2017-12-04 22:09:38 +00:00
Stephen Donner acfebb9b7a Jenkins: Update pytest to 3.3.0 (#3008) 2017-12-04 10:36:01 +00:00
Stephen Donner 4e12d430b0 Jenkins: Update all pytest-* deps, except for pytest itself. (#2998) 2017-11-28 22:48:04 +00:00
Ed Morley f7f38ef4d0
Bug 1257602 - Remove support for revision_hash (#2983)
Now that no submissions are using revision_hash, it can be removed.
This removes everything but the model field, which will be handled
later.

I've removed revision_hash from the Pulse jobs schema without bumping
the version, which wouldn't normally be ok, but no one is still using
it, and I'd rather have explicit failures later than if we left the
schema unchanged.
2017-11-28 00:09:17 +00:00
Dave Hunt 5dd4e3b01f Bug 1420180 - Only register base_url and related fixtures within Selenium test module 2017-11-27 18:30:56 +00:00
Dave Hunt d6e7f5aeba Migrate test_open_single_result to Travis suite and remove obsolete test_basics.py 2017-11-27 15:38:07 +00:00
Dave Hunt 56e441411b Remove test_treeherder_main as it's now covered by test_switch_repo 2017-11-27 15:38:07 +00:00
Dave Hunt 984aa6160e
Migrate Perfherder tests to Travis suite (#2963) 2017-11-21 12:16:24 +00:00
Dave Hunt d659d0dbec
Migrate test_switch_repo to Travis suite (#2956) 2017-11-17 09:48:05 +00:00
Stephen Donner 4256043d8c Jenkins: Set number of pytest processes via environment variable (#2925) 2017-11-14 18:34:09 +00:00
Cameron Dawson 97076b338d Bug 1364891 - Update from React 15.3 to 15.6
Also upgrade Enzyme from 2.7.1 to 3.1.1

Most notable change here is that React.PropTypes is now
moved to a separate package and referenced just by
PropTypes.  So this needed some import and linting changes.
2017-11-14 09:59:24 -08:00
Stephen Donner d7c23e2201 Jenkins: Simplify Sauce Labs credential configs (#2927) 2017-11-13 22:17:45 +00:00
William Lachance e513dd9a2e
Bug 1265709 - Reference perf signatures by id instead of hash where possible (#2926)
* Make the performance data api accept signature id as input
* Rewrite most of the frontend to use that API in preference to passing
  in signature hashes
* Correspondingly increase the chunks of comparison data we fetch
  at once
2017-11-13 10:47:27 -05:00
Stephen Donner 87b808a552 Jenkins: Pass along Git env variables to ActiveData (#2934) 2017-11-10 19:43:23 +00:00
Dave Hunt f36b58ab1a Jenkins: Wait for the status filters to be applied during tests (#2931) 2017-11-10 11:40:44 +00:00
Dave Hunt e0a8dbcff0 Bug 1408100 - Jenkins: Fix locators for dropdowns (#2929) 2017-11-10 11:17:37 +00:00
Cameron Dawson 51dc3cc938 Bug 1408100 - Upgrade to Bootstrap 4
This adds the upgrade to Bootstrap 4, and some basic changes and
some CSS tweaks we needed to keep out UI consistent.

The simpler changes are things like:

* Classes that were renamed
* Adding classes that are now needed (dropdown-item, etc)
* Change an item from a button to a span
* Changing order of items (modal header close button, etc)
* CSS class syntax changes

The other changes are lots of CSS padding, margin, font and
other spacing tweaks.
2017-11-09 11:12:09 -08:00
Dave Hunt 9fd3c72241
Bug 1340305 - Allow Selenium tests to be run locally 2017-11-09 12:55:25 +00:00
Ed Morley be843a8837 Bug 1414255 - Fix shellcheck warnings about sourced files
```
SC1090: Can't follow non-constant source. Use a directive to specify location.
SC1091: Not following: /etc/profile.d/treeherder.sh was not specified as input (see shellcheck -x).
```

See:
https://github.com/koalaman/shellcheck/wiki/SC1090
https://github.com/koalaman/shellcheck/wiki/SC1091
2017-11-05 20:53:29 +00:00
Dave Hunt 35a7dc4465 Jenkins: Fix test_open_single_result by avoiding result sets with no jobs (#2894) 2017-11-01 11:53:05 +00:00
Stephen Donner 7d8a8d65fc Jenkins: Switch to email-ext plugin for build-email notifications (#2893)
...and also include failed test results.
2017-11-01 11:29:22 +00:00
Dave Hunt a985e2c31e Jenkins: Improve wait after showing job details (#2888) 2017-10-31 14:17:14 +00:00
Dave Hunt d5e97f28ac Jenkins: Fix test_pin_all_jobs to allow for the maximum number of 500 pinned jobs (#2889) 2017-10-31 10:06:41 +00:00
Stephen Donner f74e6dfee3 Jenkins: Upgrade to Firefox 56 (#2887) 2017-10-31 09:32:00 +00:00
Dave Hunt 4fab107dfd Jenkins: Improve test_switch_repo by working around bug 1411264 (#2885) 2017-10-30 16:18:50 +00:00
Dave Hunt 9cfa8e4ca6 Jenkins: Increase timeout to 20 seconds for UI tests (#2884) 2017-10-30 11:59:01 +00:00
Dave Hunt f7380546f8 Optimise test_filter_jobs by reducing the number of driver calls 2017-10-27 17:08:43 +01:00
Dave Hunt c08f1652f7 Optimise tests that filter by job status by introducing properties and locators for each status 2017-10-27 17:08:43 +01:00
Dave Hunt ace72dcd1e Optimise test_filter_panel_reset_button by introducing locators for in-progress jobs 2017-10-27 17:08:43 +01:00
Dave Hunt 460d7c4d1b Jenkins: Improve test_open_single_result by working around bug 1411264 and viewing a random result set (#2874) 2017-10-25 18:04:07 +01:00
Dave Hunt 987e921a8f Jenkins: Improve tests that filter by email by working around bug 1411264 (#2873) 2017-10-25 18:03:36 +01:00
Dave Hunt ff2f6ef9ab Jenkins: Delete duplicate keyword filter test (#2875) 2017-10-25 18:03:04 +01:00
Dave Hunt 6b80a95ed4 Jenkins: Improve range tests by working around bug 1411264 and picking result sets relative to the end of the list (#2871) 2017-10-25 00:04:57 +01:00
Dave Hunt c982b2e983 Jenkins: Improve pin job tests by using a random job instead of assuming a suitable job exists in the first result set (#2870) 2017-10-25 00:03:09 +01:00
Dave Hunt 467b4c5868 Jenkins: Further improvements to test_filter_jobs (#2869) 2017-10-25 00:01:33 +01:00
Dave Hunt f9445e7294 Fix test_filter_panel_reset_button by hiding in progress jobs via navigation and updating reset locator (#2855) 2017-10-25 00:00:18 +01:00
Dave Hunt 4acbfb17c0 Improve test_expanding_group_count by looking beyond the first result set if required (#2858) 2017-10-23 21:31:14 +01:00
Dave Hunt 604c59cb30 Jenkins: Improve tests that get the next results (#2853)
...by waiting for the expected count and removing duplication
2017-10-23 15:52:17 +01:00
Dave Hunt dd3b226a4b Jenkins: Fix test_close_open_panels by updating to reflect changes to filters panel (#2854) 2017-10-23 15:49:01 +01:00
Dave Hunt 6996027f48 Jenkins: Fix test_expanding_group_count by repairing the locators and creating a JobGroup region (#2830) 2017-10-16 17:19:35 +02:00
Dave Hunt 10b3ed85e5 Improve test_filter_jobs by skipping result sets without linux and windows platforms (#2832) 2017-10-16 17:16:41 +02:00
vagrant 8ae17157aa Bug 1407398 - Treeherder buildbot etl updates for new talos heavy-user profile jobs 2017-10-13 14:43:37 -07:00
Dave Hunt e028b5bc30 Bug 1405666 - Close panel after filtering results to avoid keyboard shortcuts from being ignored 2017-10-13 09:32:32 -07:00
Aki Sasaki dcdb96311c Bug 1403040 - No longer use the `date` repository (#2816) 2017-10-09 22:20:56 +01:00
AlinSelagea 66e7a28b1b Bug 1404303 - Add support for stylo-disabled test jobs (#2808) 2017-10-05 16:30:20 +01:00
Rob Wood c3e77d8db8 Bug 1404925 - Add support for new talos speedometer job (#2801) 2017-10-02 22:04:59 +01:00
Cameron Dawson 75e2766e7b Bug 1400069 - Ingest superseded result value from pulse 2017-09-29 17:18:42 -07:00
Cameron Dawson f9ffe34960 Bug 1400069 - Make superseded a real job result value
Prior to this, we stored a guid in the ``coalesced_to_guid``
field and deduced that it was coalesced by that field being
non-null.  This will just set the result to "superseded" and
the state to "completed".
2017-09-29 17:18:42 -07:00
Cameron Dawson a250d1dcb6 Bug 1400069 - Replace term coalesced with superseded in most places
Except where it has to touch the database field, since that will be
vestigial in a later commit and removed in a alter PR.
2017-09-29 17:18:42 -07:00
Stephen Donner 5f1b157c42 Jenkins: Move fxtest-library include into pipeline block (#2791) 2017-09-29 17:52:16 +01:00
Brian Stack 5c0c7eb5e2 Bug 1397436 - Improve actions.json actions editor 2017-09-20 17:06:22 -07:00
Stephen Donner 754236d64d Jenkins: Bump shared-library version to 1.9 (#2775) 2017-09-15 21:44:19 +01:00
Cameron Dawson bde8e20f1f Bug 1387640 - Stop using exclusion profiles
Note: This leaves the models and tables intact so that we can
revert without data loss in case we discover an issue.  A follow-up
commit will remove those tables and models.
2017-09-13 09:05:25 -07:00
Cameron Dawson 83c94d9cae Bug 1398386 - Remove exclusion editor admin panel 2017-09-12 12:25:29 -07:00
Cameron Dawson 01d2414173 Bug 1398386 - Use signatures to set tier on buildbot jobs only
* Makes TaskCluster jobs independent of profiles to set Tier.  We take
  whatever tier we are given by TaskCluster for the job.
* Removes use of exclusion profiles for Buildbot jobs.  Jobs that
  should be Tier-2 and Tier-3 are hard-coded in the Treeherder code
  by their job signature.
2017-09-12 12:25:29 -07:00
Stephen Donner d5e5d6d184 Jenkins: Update Python UI-test dependencies (#2763) 2017-09-08 19:45:28 +01:00
Stephen Donner 93732cc168 Jenkins: Update to Firefox 55 (#2762) 2017-09-08 11:50:39 +01:00
J. Ryan Stinnett dfa920cbd8 Bug 1330412 - Add stylo-disabled Talos jobs, update tp6 groups (#2750) 2017-09-01 17:10:32 -04:00
William Lachance c5bf853499 Bug 1393778 - Make selenium look for visible elements, not just elements
A non-visible element might not be ready to be clicked
2017-09-01 13:43:00 -04:00
Cameron Dawson 2a82166526 Bug 1215587 - Fix graphql query with job_group change (#2744) 2017-08-31 12:03:00 -07:00
Alisha Aneja 8d466eeb40 Bug 1389536 - Fix Django 1.11 deprecation warnings for url and authenticate (#2730) 2017-08-30 00:01:44 +01:00
camd 5cb083ee13 Bug 1215587 - Follow-up to transition over to new job.job_group (#2607) 2017-08-28 11:25:38 -07:00
William Lachance b99fa9ff30 Bug 1393762 - Stop incrementing cache key prefix in unit tests (#2734)
Just clear the cache instead. Much simpler.
2017-08-25 10:31:02 -04:00
camd e3ed847578 Bug 1215587 - Add job_group field to jobs table (#2601)
This is to allow any job type to be able to belong to any
job group.  This will also mean that if someone accidentally
picked the wrong group for a job type, we don't need to
fix it in the DB for all new jobs.  They can fix their task
definition, and all new jobs will go to the new job group.

This includes a management command to migrate the old
data from job_type.job_group to the new field of job.job_group.

A follow-up PR will remove the old field and set the API to
read from the job.job_group field.
2017-08-23 11:36:30 -07:00
Alisha Aneja 5cdc2170cc Bug 1223883 - Fix pytest warnings for test collection (#2717)
pytest treats objects starting with the string "Test" as tests, so an
underscore prefix has been added to prevent warnings of form:

```
WC1 .../test_detect_intermittents.py cannot collect test class 'TestFailureDetector' because it has a __init__ constructor
```
2017-08-22 15:10:58 +01:00
Omar Akkila d5debf3000 Bug 1390155 - Make test_alert_sumary_post() use test_user and test_sheriff pytest fixtures (#2720) 2017-08-18 16:28:45 -04:00
Yashvardhan Didwania f6ba8d07eb Bug 1337987 - Remove login backend auth code that finds a user by email, rather than username (#2699)
* remove login backend code that finds user by email
* Modified tests. Added test_ldap_user to conftests.py
2017-08-18 13:22:56 -07:00
Joel Maher 38015b74d9 Bug 1383789 - Support xperf jobs and move tp6 in stylo mode (#2713) 2017-08-15 23:15:09 +01:00
Rebecca Billings 0f2167ae1e Jenkins: Tests fix test_keyword locator (#2714) 2017-08-15 23:07:46 +01:00
Joel Maher cbfabd0405 Bug 1383789 - Add support for Talos-Stylo svg (#2711) 2017-08-15 20:54:25 +01:00
Rebecca Billings 8fdde56591 Jenkins: Fix test failure list index out of range (#2709) 2017-08-15 19:37:55 +01:00
Joel Maher aec4ef67d7 Bug 1383789 - Add support for more desktop Stylo Talos tests (#2708) 2017-08-15 19:36:52 +01:00
Ed Morley 2e1f1a2407 Bug 1390169 - Add support for linux64-qr talos
It's having to be added as a platform rather than a new job/group
name, since otherwise comparisons can't be made in Perfherder with
the existing tests.
2017-08-14 17:30:44 +01:00
Alisha Aneja 86dea95c67 Bug 1368991 - Fix JobsViewSet.list-AttributeError: list object has no attribute values_list (#2700) 2017-08-14 14:06:47 +01:00
Alisha Aneja be4a7e3d91 Bug 1326247 - Fix BaseException.message deprecation warnings (#2703) 2017-08-14 12:05:12 +01:00
William Lachance ed1ec92051 Bug 1387562 - Fix erroneously-generated subtest performance alerts (#2682)
For subtest performance alerts, repository-wide setting should trump
configured one
2017-08-05 11:50:21 -04:00
Max Chehab c6e0c26bc8 Bug 1336272 - Refactor changing wording from resultset to push (#2644)
Change of new environment variable `PULSE_PUSH_SOURCES`.

Keep old `publish-resultset-runnable-job-action` task name by creating a 
method that points to `publish_push_runnable_job_action`.
2017-08-04 09:38:57 -07:00
Stephen Donner 3648340ab4 Jenkins: Switch to using Marionette/geckodriver (#2656)
* Add marionette capabilities
* Send tags to SauceLabs
2017-08-04 13:20:43 +02:00
Ed Morley 2ae5c57959 Bug 1365567 - Remove unused libmysqlclient vendoring support
All environments are now using the native MySQL 5.7 libmysqlclient
library, so the custom vendoring script is unused. The tests checking
that the library isn't vulnerable aren't needed any more, since
heroku-16 doesn't even have that package installed (it's not available
on Xenial).
2017-08-03 11:53:16 +01:00
Rob Wood cab2c53ee5 Bug 1384297 - Add treeherder job mapping support for new tp6 jobs (#2659) 2017-07-27 18:05:15 -04:00
KWierso 98622164f7 Bug 1383581 - (Bug filer) Let the bug filer accept unicode (#2652) r=camd 2017-07-27 14:32:31 -07:00
Cameron Dawson 9069346f5e Bug 1378473 - Add support for select_related and prefetch_related to GraphQL
The GraphQL queries for the TestGroup UI were creating too many sub-queries.
There is a bug in graphene_django that eliminates any usage of
select_related or prefetch_related.  This works around that limitation and
allows the user to create a mapping of fields to the optimization that
can be used for each.  It will only apply the optimization if the field
is present in the query.
2017-07-26 14:49:18 -07:00
Rob Wood 91c7727d17 Bug 1383127 - add 'q1s' job to treeherder to be used for talos job quantum-pageloader-stylo-e10s (#2649) 2017-07-21 13:19:19 -04:00
Cameron Dawson 9183e56d27 Bug 1372581 - Handle latin characters in commit author names
We use python .format() to concatenate the commit author’s name and
email address.  When we hit an author name with non-ASCII
characters, it would bomb out trying to format it into a String.
So this makes sure to put those fields into a Unicode field to preserve
them.
2017-07-20 10:13:00 -07:00
KWierso 2ce4b08d7a Bug 1381587 - Make the bug filer set new bugs to P5 priority (#2640) r=emorley 2017-07-19 11:41:34 -07:00
Ed Morley ed34567863 Bug 1378433 - Skip test_mysqlclient_tls_enforced() on Travis
Since we have to upgrade from MySQL 5.6 to 5.7 and there are still
enough remnants behind that cause the test to fail. Multiple attempts
have been made to clean them up to no avail, and since this will go
away soon when we switch Travis to using Docker images, it's not worth
spending any more time on it.
2017-07-18 01:31:02 +01:00
camd 3a16745fdf Bug 1372581 - Fix exception in error reporting for missing Repository (#2624) 2017-07-12 11:40:47 -07:00
Rob Wood d049a8ef54 Bug 1379164 - Update etl buildbot job mappings for talos perf-reftest-singletons (#2622) 2017-07-07 11:37:01 -04:00
William Lachance 863fa899bd Remove unnecessary format='json' parameter in unit tests (#2618) 2017-07-06 21:50:57 -04:00
Ed Morley b9d9aef650 Bug 1378938 - Remove typoed APIClient format parameter
Since the default response type is set to `json` in settings.py, by
`TEST_REQUEST_DEFAULT_FORMAT`, so the parameter is redundant.
2017-07-06 23:06:33 +01:00
Ed Morley a618ed01a6 Bug 1378950 - Fix test_summary_performance_data non-determinism
Previously it was dependant on the order of results returned by the
API, when the backing DB query doesn't use an ORDER BY. This means
that changes in the optimiser (eg upgrading to a different MySQL
version) could cause the test to fail.
2017-07-06 23:06:33 +01:00
Dave Hunt 2299fb5dff Update dependencies for functional UI tests 2017-07-04 14:17:37 +01:00
Dave Hunt 6e02c8f766 Submit functional UI test results to Treeherder 2017-07-04 14:17:37 +01:00
KWierso acc65771fc Bug 1371820 - Automatically select 'fixed by commit' classification type in certain circumstances (#2549) r=emorley/camd
* Bug 1371820 - Automatically select 'fixed by commit' classification type in certain circumstances

If a 12 or 40 char string consisting only of a-f,0-9 is pasted into the classification textbox, or if the pasted string contains 'hg.mozilla.org', automatically select the 'fixed by commit' classification type, to reduce the number of clicks needed to properly classify this failure.
2017-06-30 14:54:42 -07:00
KWierso 3e9e7443cb Bug 1375341 - Add support for leaksanitizer errors (#2587) r=emorley 2017-06-29 17:05:26 -07:00
KWierso 7d2cd54f30 Bug 1374778 - Bug filer: Improve the filename extraction logic (#2584) 2017-06-28 15:43:11 -07:00
Rebecca Billings c16863c624 Bug:test_range fix locators (#2592) 2017-06-23 17:41:21 +01:00
Cameron Dawson e181d21989 Bug 1373008 - Store test group for FailureLines as a many-to-many relationship
Test Group is often a manifest, but not necessarily.  It could be just
``default`` when there is no manifest.
2017-06-23 09:04:25 -07:00
Stephen Donner 4fc7a53d7f Jenkins: Upgrade to Firefox 54 (#2585) 2017-06-21 10:41:14 +01:00