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

65 Коммитов

Автор SHA1 Сообщение Дата
Sebastian Hengst 5bebdbfe74 Bug 1753209 - remove repositories which have reached end of life or are not accessed anymore through Treeherder 2022-05-13 20:41:21 +02:00
ionutgoldan a7e1f79283
Bug 1702410 - Reflect backfill bot' s new name in logs
* rename backfill bot' s packages to Sherlock
* slight logs adjustments to Sherlock
* replace 'Perfsheriff bot' prefix with 'Sherlock'
* adjust comment referring to Sherlock
* rename SecretaryTool to Secretary
2021-04-05 16:27:38 +03:00
Gregory Mierzwinski 33b7e935b0
Add hyphen to possible perfherder-data tag characters. (#6893) 2020-12-03 17:10:22 -08:00
Sarah Clements 507881a7b8
Remove step parser v3 (#6634)
* remove StepParser and switch to ErrorParser
* remove writes to TextLogStep from artifact.py
* remove buildbot ref in builders
* replace TextLogStep model in DetailsPanel, SimilarJobsTab and logviewer App
* cleanup DetailsPanel
* remove old log parsing tests and update others
* add logging to error_summary.py
* add parse max error lines limit to ErrorParser
* fix in similar jobs tab for Bug 1652869
2020-07-17 10:28:01 -07:00
Armen Zambrano G 7430583ff7 Revert "Bug 1633041 - Remove step parser v2 (#6611)"
This reverts commit 1d1be59d29.
2020-07-16 09:35:52 -04:00
Sarah Clements 1d1be59d29
Bug 1633041 - Remove step parser v2 (#6611)
* remove StepParser and stop storing steps in TextLogStep
* remove more buildbot references 
* replace TextLogStep model in DetailsPanel and logviewer App
* remove old log parsing tests and update other tests
* add logging to error_summary.py
2020-07-14 10:57:09 -07:00
Sarah Clements bed22bf0da
Revert "Bug 1633041 - Remove step parser and TextLogStep table (#6546)" (#6598)
This reverts commit 7d3d8ae902.
2020-07-09 11:04:04 -07:00
Sarah Clements 7d3d8ae902
Bug 1633041 - Remove step parser and TextLogStep table (#6546)
* remove StepParser and stop storing steps
* replace TextLogStepModel in the UI with text-log-errors API
* remove old references to buildbot
* update and cleanup tests
2020-07-08 14:57:40 -07:00
Cameron Dawson 60fa75d4ee
Bug 1646753 - Increase size of job_type.name field (#6539) 2020-06-23 16:34:53 -07:00
Sarah Clements d598ad4544
Bug 1603249 - Remove job artifacts storage and TinderboxPrint parsing (#6349)
* remove artifact storage in the job loader
* remove BuildbotJobArtifactBuilder and TinderboxPrint parser
* update pulse-job schema and tests
2020-05-07 09:54:06 -07:00
Gregory Mierzwinski 6e65b9b68d
Add chrome-m application for Chrome Android browser (#6149) 2020-03-18 13:02:41 +02:00
octavian-negru 322c4631c8
Bug 1618816 - Define json schema for log_details column 2020-03-06 10:49:19 +02:00
ionutgoldan b64396f8eb
Bug 1587398 - Mirror CI schema support for tags 2019-11-27 10:20:53 +02:00
ionutgoldan 982f0e756a
Bug 1597634 - Mirror CI schema support for public suite & test names 2019-11-25 09:31:05 +02:00
ionutgoldan aef15ddf90
Bug 1593194 - Mirror CI schema validation support for application field 2019-11-11 10:48:59 +02:00
ionutgoldan ecb34da75b
Bug 1584946 - Mirror CI schema validation support for unit field 2019-11-11 09:34:26 +02:00
Octavian Negru 0861884287 Bug 1595018 - Temporarily allow maxLength of 100 for extra options 2019-11-08 08:49:45 -05:00
Armen Zambrano G 9de99b4711 Bug 1395254 - Consume Taskcluster Pulse messages from standard queue exchanges
Currently, Treeherder consumes Pulse messages from an intermediary service called `taskcluster-treeherder`.
Such service needs to be shut down and its functionality imported into Treeherder.

In order to do this we need to switch to the standard Taskcluster exchanges as defined in here:
https://docs.taskcluster.net/docs/reference/platform/queue/exchanges

On a first pass we are only including the code from `taskcluster-treeherder` without changing
much of Treeherder's code. The code is translated from Javascript to Python and only some minor
code changes were done to reduce the difficulty on porting the code without introducing bugs.
Internally, on this first pass, we will still have an intermediary data structure representing
what `taskcluster-treeherder` is emitting, however, we will stop consuming the messages
from it and be able to shut it down.

Instead of consuming from one single exchange we will be consuming multiple ones. Each one representing
a different kind of task (e.g. pending vs running).

In order to test this change you need to open 5 terminal windows and follow these steps:

* On the first window run `docker-compose up`
* On the next three windows `export PULSE_URL="amqp://foo:bar@pulse.mozilla.org:5671/?ssl=1"` and run the following commands:
      * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_jobs`
      * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_tasks`
      * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_pushes`
* On the last window run `docker-compose run backend celery -A treeherder worker -B --concurrency 5`
* Open on your browser `http://localhost:5000`

This is just a summary from [the docs](https://treeherder.readthedocs.io/pulseload.html).

= ETL management commands =
This change also introduces two ETL management command that can be executed like this:

== Ingest push and tasks ==

This script can ingest into Treeherder all tasks associated to a push.
It uses Python's asyncio to speed up the ingestion of tasks.

```bash
./manage.py ingest_push_and_tasks
```

== Update Pulse test fixtures ==

```bash
./manage.py update_pulse_test_fixtures
```

This command will read 100 Taskcluster Pulse messages, process them and store them as test fixtures
under these two files: `tests/sample_data/pulse_consumer/taskcluster_{jobs,metadata}.json`

Following this work would be to get rid of the intermediary job representation ([bug 1560596](https://bugzilla.mozilla.org/show_bug.cgi?id=1560596) which will
clean up some of the code and some of the old tests.

= Extra script =
Script that permits comparing pushes from two different Treeherder instances.

```
usage: Compare a push from a Treeherder instance to the production instance.
       [-h] [--host HOST] --revision REVISION [--project PROJECT]

optional arguments:
  -h, --help           show this help message and exit
  --host HOST          Host to compare. It defaults to localhost
  --revision REVISION  Revision to compare
  --project PROJECT    Project to compare. It defaults to mozilla-central
```

= Other changes =

Other changes included:

* Import `taskcluster-treeherder`'s validation to ensure we're not fed garbage.
* Change `yaml.load(f)` for `yaml.load(f, Loader=yaml.FullLoader)`. Read [this](https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation) for details
* Introduce `taskcluster` and `taskcluster-urls` as dependencies
* The test `test_retry_missing_revision_never_succeeds` makes no sense because
we make Json validation on the Pulse message
2019-07-29 09:42:57 -04:00
Armen Zambrano G 7f04a91af7 Revert "Bug 1395254 - Consume Taskcluster jobs from standard queue exchanges (#5042)"
This reverts commit 75dc375a93.
2019-07-23 16:24:13 -04:00
Armen Zambrano 75dc375a93
Bug 1395254 - Consume Taskcluster jobs from standard queue exchanges (#5042)
* Bug 1395254 - Consume Taskcluster Pulse messages from standard queue exchanges

Currently, Treeherder consumes Pulse messages from an intermediary service called `taskcluster-treeherder`.
Such service needs to be shut down and its functionality imported into Treeherder.

In order to do this we need to switch to the standard Taskcluster exchanges as defined in here:
https://docs.taskcluster.net/docs/reference/platform/queue/exchanges

On a first pass we are only including the code from `taskcluster-treeherder` without changing
much of Treeherder's code. The code is translated from Javascript to Python and only some minor
code changes were done to reduce the difficulty on porting the code without introducing bugs.
Internally, on this first pass, we will still have an intermediary data structure representing
what `taskcluster-treeherder` is emitting, however, we will stop consuming the messages
from it and be able to shut it down.

Instead of consuming from one single exchange we will be consuming multiple ones. Each one representing
a different kind of task (e.g. pending vs running).

In order to test this change you need to open 4 terminal windows and follow these steps:

* On the first two windows `export PULSE_URL="amqp://foo:bar@pulse.mozilla.org:5671/?ssl=1"` and run the following commands:
  * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_jobs`
  * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_pushes`
* On the third window run `docker-compose run backend celery -A treeherder worker -B --concurrency 5`
* On the last window run `docker-compose up`
* Open on your browser `http://localhost:5000`

This is just a summary from [the docs](https://treeherder.readthedocs.io/pulseload.html).

= ETL management commands =
This change also introduces two ETL management command that can be executed like this:

== Ingest push and tasks ==

This script can ingest into Treeherder all tasks associated to a push.
It uses Python's asyncio to speed up the ingestion of tasks.

```bash
./manage.py ingest_push_and_tasks
```

== Update Pulse test fixtures ==

```bash
./manage.py update_pulse_test_fixtures
```

This command will read 100 Taskcluster Pulse messages, process them and store them as test fixtures
under these two files: `tests/sample_data/pulse_consumer/taskcluster_{jobs,metadata}.json`

Following this work would be to get rid of the intermediary job representation ([bug 1560596](https://bugzilla.mozilla.org/show_bug.cgi?id=1560596) which will
clean up some of the code and some of the old tests.

= Other changes =

Other changes included:

* Import `taskcluster-treeherder`'s validation to ensure we're not fed garbage.
* Change `yaml.load(f)` for `yaml.load(f, Loader=yaml.FullLoader)`. Read [this](https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation) for details
* Introduce `taskcluster` and `taskcluster-urls` as dependencies
* The test `test_retry_missing_revision_never_succeeds` makes no sense because
we make Json validation on the Pulse message
2019-07-23 13:14:18 -04:00
Ed Morley 4cfdae3f41 Bug 1522101 - Use Prettier to format JSON 2019-01-23 20:19:04 +00:00
Ed Morley 96fb922072 Bug 1522101 - Use Prettier to format YAML 2019-01-23 20:19:04 +00:00
Simon Sapin 27eb1af2a6 Fix schema descriptions for GitHub jobs (#4327) 2018-11-30 08:20:00 +00:00
ionutgoldan 9168eba8e8 Bug 1431085 - Increase max length of PerformanceSignature.extra_options (#4238) 2018-11-14 09:22:11 +00:00
Ed Morley 445766d958
Bug 1443251 - Remove support for buildbot job ingestion (#4087)
The buildapi celerybeat tasks were disabled previously in #4007, so
these tasks are unused.
2018-10-02 11:07:27 +01:00
Ed Morley eae4fa006f
Bug 1492462 - Remove retrigger/cancel APIs and pulse publisher (#4042)
Since as of #3980 (bug 1470622) the frontend no longer calls the
`/retrigger/` `/cancel/` or `/cancel_all/` Treeherder APIs.

Whilst looking at the pulse related fixtures, I spotted that the
`mock_message_broker` fixture was already unused.
2018-09-21 17:39:03 +01:00
Dustin J. Mitchell a6411c3538
Use $id instead of id (#3949)
This schema is a version-6 schema, which uses $id instead of id.
2018-08-27 13:06:07 -04:00
Pete Moore 3be9568cba Applied changes from taskcluster-treeherder fork of pulse-job.yml 2018-04-26 11:23:05 -07:00
Pete Moore 07d274dd49 Cleaned up titles in pulse-job.yml to aid downstream client generation (#3464) 2018-04-25 10:10:12 -07:00
Ed Morley 958cc079a7
Bug 1419957 - Remove old style backfill/add new job features (#2982)
Since everything but standard retrigger/cancellation is now handled
client-side by tcactions, making the backend parts that provided pulse
messages to pulse_actions redundant (since it was decommissioned in
bug 1379172).
2017-12-05 22:42:06 +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
Cameron Dawson 75e2766e7b Bug 1400069 - Ingest superseded result value from pulse 2017-09-29 17:18:42 -07: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
Dave Hunt ea90972662 Bug 1352403 - Replace invalid "url" format with "uri" (#2307) 2017-04-04 11:56:32 -07:00
William Lachance e702a309d9 Bug 1342495 - Allow perfherder to alert on abs change instead of percentage (#2242) 2017-03-17 10:37:41 -04:00
glenn124f dc3d9474d9 Bug 1286897 - Change references of decisionTaskID to decision_task_id (#1819) 2016-09-21 10:56:58 -04:00
William Lachance 28cae8c360 Bug 1302844 - Remove redundant information from text log artifacts (#1854)
Now that they are only an intermediary format, we can remove data
that isn't required to interpret them.
2016-09-21 10:54:53 -04:00
William Lachance c660021d2b Bug 1295536 - Validate that perfherder values are within acceptable ranges
Especially make sure that we have no "infinite" values, as those can
cause exceptions.
2016-08-17 13:57:55 -04:00
Ed Morley 8858fc1443 Revert "Bug 1295536 - Validate that perfherder values are within acceptable ranges" (#1788)
Reverts mozilla/treeherder#1786, due to:
https://bugzilla.mozilla.org/show_bug.cgi?id=1295536#c9
2016-08-17 00:02:02 +01:00
William Lachance 07db3a801b Bug 1295536 - Validate that perfherder values are within acceptable ranges (#1786)
Especially make sure that we have no "infinite" values, as those can
cause exceptions.
2016-08-16 13:21:36 -04:00
camd 4cc00cf784 Bug 1278711 - Set pulse schema jobdetails field lengths higher (#1665)
This sets the field lengths to what they will be in a later PR for
the job_details model.  But these are still within the constraints
of the current field lengths for that table.
2016-07-08 14:33:57 -07:00
camd 8e3e5b7518 Bug 1283865 - remove pattern requirements for pulse job display fields (#1639)
Several existing jobs are already out of compliance with these patterns
and there is no existing way to tell task definition developers how to
comply with our required patterns.

created bug 1283866 in Taskcluster for that tool/workflow

This removes the pattern requirements.  If we ever decide that we DO
need these patterns, we can create that tool and then fix old task
definitions to comply.
2016-07-01 08:23:51 -07:00
Kalpesh Krishna 9d57fed726 Bug 1254325 - Adding support to schedule TaskCluster jobs (#1490)
* Bug 1254325 - Adding support to download all_tasks.json

* Adding support to send task ID of gecko decision via Pulse

* Fixing a few problems

* Adding UTC timestamp in pulse message

* Fixing nits, adding restriction to block ui changes

* Updating URL for full tasks file

* Renaming buildernames to requested_jobs
2016-06-28 12:32:21 -07:00
camd 128ad99190 Bug 1280306 - Add buildSystem field to pulse-job.yml (#1600) 2016-06-15 14:19:06 -07:00
Cameron Dawson ac30956a56 Bug 1277955 - Add support for revision_hash to pulse jobs
Some repos are longer-lived and do not yet have the Task Cluster
code that allows them to submit tasks with a revision.  They only
have the older code to submit revision_hash.  This prevents the
jobs from being ingested via Pulse.  This commit adds support
for revision_hash until a time when it's no longer needed.
2016-06-07 11:31:38 -07:00
Cameron Dawson f98bf3f8b0 Bug 1266229 - Fix Pulse job ingestion prior to enabling it
This contains several tweaks and fixes that allow us to ingest data from
a real Task Cluster owned exchange.

One of the main fixes is the way I was binding to the exchange and
routing keys with the same Queue.  Before, it was re-creating the Queue,
so would miss some of the bindings.

This will also prune the durable queue if the config has removed some
exchanges and/or routing keys.
2016-05-25 12:33:33 -07:00
William Lachance 2142d203bd Bug 1263691 - Remove talos jsonschema 2016-05-03 11:06:52 -04:00
Cameron Dawson be37805e08 Bug 1266229 - Pulse ingestion fixes and updates
These changes were discovered to be needed after direct testing
against Task Cluster Pulse exchanges.

-Made some JSON/YML schema changes to be more precise for several fields
-Modified to job_loader to be more resilient to optional data being
  missing
2016-05-02 09:39:44 -07:00
William Lachance 8ea9d306ee Bug 1261922 - Allow specifying extra options for a perfherder test
E.g. "e10s" if a test was run in e10s mode, "shell" if a JS test was run
using only the JavaScript shell.
2016-04-28 14:50:20 -04:00
William Lachance 4da1e522ef Bug 1254595 - Make alert generation parameters configurable per-series 2016-04-06 15:16:19 -04:00