Eelco Dolstra
66375fd2d9
Fix 'Error loading tab: 0 error' with uBlock Origin
...
/metrics-tab matches a rule in one of uBlock Origin's default
blocklists, so let's name it something else.
2021-09-27 17:42:56 +02:00
Eelco Dolstra
9bb3e30a46
Fix building $(srcdir)/static
...
Fixes
mv: cannot move './static/bootstrap-4.3.1-dist' to './static/bootstrap/bootstrap-4.3.1-dist': Directory not empty
when 'make' is called more than once.
2021-09-27 17:01:25 +02:00
Graham Christensen
c60c8d10ea
add api endpoint: /build/<id>/constituents
...
Returns a list of constituent builds
2021-09-24 16:30:44 -04:00
Maximilian Bosch
255d4a91bc
jobset-eval: pass full
parameter to "Compare to..."
...
When I take a look at *all* failing builds (by clicking at `[...] more
jobs omitted`) and I try to compare the failures to another jobset, I'd
like to still view *all* failing builds in the compare-view.
This wasn't the case before since the `full=`-param was ignored by the
compare-buttons.
2021-09-08 23:23:29 +02:00
Graham Christensen
741590c923
perlcritic: explicitly assign the result of readdir/file reads
2021-09-07 21:55:55 -04:00
Graham Christensen
85bb1c7ef9
(perlcritic) JSON::Any -> JSON::MaybeXS
2021-09-07 21:55:55 -04:00
Graham Christensen
c603ae35f0
perlcritic: Don't conditionally declare variables
2021-09-07 21:35:01 -04:00
Graham Christensen
b1879132af
ResultSet::TaskRetries: add missing method, get_retryable_task
...
Yet again, manual testing is proving to be insufficient. I'm pretty
sure I wrote this code but lost it in a rebase, or perhaps the switch
to result classes.
At any rate, this implements the actual "fetch a retry row and run it"
for the hydra-notify daemon.
Tested by hand.
2021-09-07 11:12:10 -04:00
Graham Christensen
d6aa3f8d15
Merge pull request #1011 from DeterminateSystems/retryable-notifications
...
Retryable notifications
2021-09-07 10:04:32 -04:00
Graham Christensen
21e1ff0da1
perlcritic: don't open files as bare words
2021-09-06 22:20:17 -04:00
Graham Christensen
efd1d78b97
Hydra::Helper::Nix: getHydraNotifyPrometheusConfig fixup strict warning around double-declaring cfg
2021-09-06 22:13:33 -04:00
Graham Christensen
c880888f1e
File::Slurp -> File::Slurper
2021-09-06 22:13:33 -04:00
Your Name
c54629b732
Helper/Nix.pm: perlcritic statsd in scalar context
2021-09-06 22:13:33 -04:00
Your Name
4677a7c894
perlcritic: use strict, use warnings
2021-09-06 22:13:33 -04:00
Graham Christensen
dd06ab7a99
Merge pull request #1004 from DeterminateSystems/avoid-a-b
...
Avoid $a, $b
2021-09-06 21:35:17 -04:00
Graham Christensen
ca4b8d449f
BitBucketStatus: tbuild -> build (typo)
2021-09-06 21:12:13 -04:00
Graham Christensen
d9df26ac5a
POD: improve wording, punctuation, caps
...
Co-authored-by: Cole Helbling <cole.helbling@determinate.systems>
2021-09-03 09:13:34 -04:00
Graham Christensen
ea3ae0693e
Hook up the retryable tasks with hydra-notify
2021-09-02 10:06:26 -04:00
Graham Christensen
c0e86faa78
hydra-notify: call TaskRetries->save_task if a task fails
2021-09-02 10:06:26 -04:00
Graham Christensen
b0055a23df
TaskDispatcher: Support re-queueing tasks, and dropping tasks after 100 failures.
2021-09-02 10:06:26 -04:00
Graham Christensen
d0b0fc21b3
ResultSet::TaskRetries: teach about saving tasks
2021-09-02 10:06:26 -04:00
Graham Christensen
147fa4d029
Result::TaskRetries: Teach about requeue
2021-09-02 10:06:26 -04:00
Graham Christensen
42c2d2f387
Hydra::Math: add an exponential_backoff function
2021-09-02 10:06:26 -04:00
Graham Christensen
29738364fb
ResultSet::TaskRetries: add get_seconds_to_next_retry
...
Get the number of seconds before the next retriable task is ready.
This number is specifically intended to be used as a timeout, where
`undef` means never time out.
2021-09-02 10:06:26 -04:00
Graham Christensen
c4134c8e84
TaskRetries: init table
2021-09-02 10:06:26 -04:00
Graham Christensen
1f2adf61aa
hydra-notify: extract runPluginsForEvent to a TaskDispatcher
2021-09-02 10:06:26 -04:00
Graham Christensen
fa57fb8f25
hydra.sql: explain update-dbix.pl map
2021-08-26 22:10:19 -04:00
Graham Christensen
397d13a300
DBIx::Class: migrate to use_namespaces
...
This gives us a place to put helper functions that act on entire
tables, not just individual records.
This should be a backwards compatible change, except in places we're
manually using result class names.
2021-08-26 12:37:19 -04:00
Your Name
24467a7bde
Nix::getHydraNotifyPrometheusConfig: print errors if the configuration provided is invalid.
2021-08-24 11:35:38 -04:00
Your Name
4ebdcc290e
fixup! hydra-notify: pre-declare metrics
2021-08-24 10:57:23 -04:00
Your Name
45e8fa5319
hydra-notify: support sending diagnostic dumps to STDERR on request
2021-08-24 10:56:13 -04:00
Your Name
de2282bcf4
hydra-notify: print out log lines indicating it is or is not launching the exporter
2021-08-24 10:56:13 -04:00
Your Name
5c1228e141
hydra-notify: pre-declare metrics
2021-08-24 10:56:13 -04:00
Your Name
6d7ee27d25
hydra-notify: make the prometheus endpoint configurable, default-off
2021-08-24 10:56:13 -04:00
Your Name
5d0ad5f649
hydra-notify: initial scratch take of prometheus events
2021-08-24 10:56:12 -04:00
Graham Christensen
e9ba0b56f6
BuildFinished : $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
5e10648a98
CoverityScan: $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
c929f5cac0
SlackNotification: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
b4f9807290
GithubStatus: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
5c9d8794b1
GiteaStatus: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
3920bf1df3
BitBucketStatus: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
bcf37ab705
GitlabStatus: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
b4a19fd3c8
HIpChatNotification: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
0d4ce15c62
EmailNotification: $build -> $topbuild, $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
0f88014631
CircleCiNotification: $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
b6714cdce3
JobsetEval: $a, $b to $left, $right (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
d0fb3cbf8f
Job: $b -> $build (perlcritic)
2021-08-20 21:52:32 -04:00
Graham Christensen
1cda08351f
CatalystUtils: rename $b to $builds (perlcritic)
2021-08-20 21:52:32 -04:00
Your Name
4632132d02
fixup perlcritic: indirect new
...
> Subroutine new called using indirect syntax at line 14, column 14. See page 349 of PBP. (Severity: 5)
2021-08-20 11:39:19 -04:00
Your Name
6e65c3b320
hydra-notify: fixup printing of build IDs
...
Used to print:
sending notifications for build Hydra::Model::DB::Builds=HASH(0x124cf960)->id...
Now it prints:
sending notifications for build 123...
2021-08-16 16:09:05 -04:00
Your Name
2c50227082
hydra-notify: properly call new_event
2021-08-16 15:52:25 -04:00
Your Name
e572a5e576
hydra-notify: use Hydra::Event
2021-08-16 15:52:14 -04:00
Graham Christensen
fda3ed1d4e
Merge pull request #999 from DeterminateSystems/fixup/pr-998
...
lib/makefile: include Event/*.pm
2021-08-16 14:13:18 -04:00
Your Name
cfd3034af8
lib/makefile: include Event/*.pm
2021-08-16 14:04:48 -04:00
Graham Christensen
fa6d7abc13
hydra-notify: move BuildFinished processing to an Event
2021-08-13 16:51:29 -04:00
Graham Christensen
4a1389e36e
hydra-notify: move StepFinished processing to an Event
2021-08-13 16:51:29 -04:00
Graham Christensen
4fdb20d3bd
hydra-notify: move BuildStarted processing to an Event
2021-08-13 16:51:29 -04:00
Graham Christensen
10e85e3422
hydra-notify: Create a helper for running each plugin on an event
2021-08-13 16:51:29 -04:00
Graham Christensen
d02c6794f4
Event: teach how to execute a plugin
2021-08-13 16:51:29 -04:00
Graham Christensen
4e86e55008
Event.pm: add a new_event helper to parse and construct an Event
...
An Event will be part of many Tasks
2021-08-13 16:51:29 -04:00
Graham Christensen
64a3e75c10
Event: init structure and parse existing messages
2021-08-13 16:51:29 -04:00
Graham Christensen
a14c8ad5f8
Merge pull request #995 from DeterminateSystems/declarative-jobsets-plugin
...
Declarative jobsets: move event handling to a plugin
2021-08-12 15:56:13 -04:00
Graham Christensen
0f958f3425
Merge pull request #997 from DeterminateSystems/abstract-listener
...
Abstract over postgres' LISTEN/NOTIFY
2021-08-12 14:00:34 -04:00
Graham Christensen
5027003285
Abstract over postgres' LISTEN/NOTIFY
...
This lets us test the event loop if we wanted, and lets us
test the listening behavior in isolation.
2021-08-12 13:54:05 -04:00
Graham Christensen
593af41808
Declarative jobsets: move event handling to a plugin
...
Declarative jobsets were sort of tucked in to the event hanlder
itself. It turned out that it could have been implemented as a
plugin without much trouble.
2021-08-12 12:48:18 -04:00
Graham Christensen
9c5f317453
hydra-notify: move buildFinished query in to the function impl
...
This is more consistent with the other event handlers, of dealing
with IDs and not objects.
2021-08-12 12:30:35 -04:00
Eelco Dolstra
5edb58b314
Fix build
2021-08-10 13:47:16 +02:00
Graham Christensen
c7c322545d
Merge pull request #992 from DeterminateSystems/sql/fixup-comment
...
hydra.sql: Update comment on regeneration
2021-08-06 14:54:12 -04:00
Graham Christensen
4169f22231
update-dbix.pl: correct indentation
2021-08-06 14:40:57 -04:00
Graham Christensen
5bd8dc171b
hydra.sql: Update comment on regeneration
...
We no longer need to generate the hydra-postgres.sql document,
that is a relic from when sqlite was also supported.
2021-08-06 14:40:34 -04:00
Shay Bergmann
503b0e0b6f
Remove unnecessary comment
2021-07-26 17:16:40 +00:00
Shay Bergmann
173ecb5d92
Apply requested changes to Config.pm
2021-07-26 17:16:40 +00:00
Shay Bergmann
4f95774ca3
Factor out common options
2021-07-26 03:43:09 +00:00
Shay Bergmann
e98bd0ec8d
Comment around dupe to avoid drift
2021-07-22 23:27:21 -04:00
Shay Bergmann
54c8028ec0
Make hydra-server honor config file includes
2021-07-22 17:25:30 -04:00
Nathan van Doorn
5c47343b40
Fix deprecation warnings with libpqxx usage
2021-07-05 19:45:25 +01:00
Graham Christensen
e02f34722f
Merge pull request #887 from helsinki-systems/feat/eval-overview-duration
...
Show evaluation time in the evaluations overview
2021-06-29 10:59:02 -04:00
Janne Heß
94b88b34ae
Show evaluation time in the evaluations overview
...
Parts of this code have been authored by @grahamc
2021-06-29 16:53:10 +02:00
Jonathan Ringer
24959a3ca6
Allow for evaluator_pure_eval to be configured
2021-06-28 16:24:40 -07:00
Damien Diederen
df7dab1291
GitInput: Include deepClone option in the cache key
...
Without this commit, two jobsets using the same repository as input,
but different `deepClone` options, end up incorrectly sharing the same
"checkout" for a given (`uri`, `branch`, `revision`) tuple. The
presence or absence of `.git` is determined by the jobset execution
order.
This patch adds the missing `isDeepClone` boolean to the cache key.
The database upgrade script empties the `CachedGitInputs` table, as we
don't know if existing checkouts are deep clones. Unfortunately, this
generally forces rebuilds even for correct `deepClone` checkouts, as
the binary contents of `.git` are not deterministic.
Fixes #510
2021-06-19 17:37:40 +02:00
Graham Christensen
09ad52ab60
Document getEvals a bit
...
Also drop the $self parameter.
Co-authored-by: gustavderdrache
2021-06-16 13:15:01 -04:00
Graham Christensen
5d95abf540
getBuilds: clarify the names of evals vs. the query builder
2021-06-16 11:53:04 -04:00
Graham Christensen
bf5c76feb6
getEvals: order by the eval table's ID
...
I broke this when I added `me.` in f1e75c8bff
I added me. to disambiguate `id`, but:
* eval.id works on the per-build page
* me.id works on the other pages
* Just id works everywhere if I drop:
, prefetch => { evaluationerror => [ ] },
but this causes a query per row to collect the evaluationerror
records later, this becomes significantly slow on non-trivial
datasets.
Using evals->current_source_alias will use the correct alias
whether it is me or eval or something else.
2021-06-16 11:24:30 -04:00
Graham Christensen
71453dd341
Expose Prometheus metrics at /metrics
...
Exposes metrics:
* http_request_duration_seconds_bucket
* http_request_size_bytes_bucket
* http_response_size_bytes_bucket
* http_requests_total
with labels of action and controller to help identify popular
endpoints and their performance characteristics.
2021-06-10 20:02:42 -04:00
Graham Christensen
382ba590ad
Drop unused query from GET Build.
2021-06-01 11:47:05 -04:00
Graham Christensen
a9e4ede006
SQL: create better indexes for builds based on the jobset id
...
These are primarily used by the jobsetOverview renders.
2021-06-01 11:23:22 -04:00
Graham Christensen
719d0a6134
jobset overview: join jobsets to builds by jobset id
2021-06-01 11:19:33 -04:00
Graham Christensen
508d99d611
Join to builds via jobset_id when easy
2021-06-01 11:16:47 -04:00
Cole Helbling
45ced33ab6
Projects: don't respond with unnecessary declarative field
...
If the project isn't declarative, who cares about it in the response? After
setting the `declfile` to an empty string, everything related to declarative-
ness is wiped out, anyways.
2021-05-24 15:26:34 -07:00
Graham Christensen
3dc745de68
Merge pull request #964 from DeterminateSystems/fix-cascade
...
Jobsets: remove defunct Jobs relationship
2021-05-09 21:17:12 -04:00
Cole Helbling
7ba58ca3ea
Jobsets: remove defunct Jobs relationship
...
It appears the Jobs table was removed in
8adb433e3b
, but the Jobsets schema was never
updated to reflect this. This relationship was added in
efa1f1d4fb
, roughly 3 months prior.
Previously, one would see a message similar to the following logged when
deleting a jobset:
17:38:23 hydra-server.1 | DBIx::Class::Relationship::CascadeActions::delete(): Skipping cascade delete on relationship 'jobs' - related resultsource 'Hydra::Schema::Jobs' is not registered with this schema at /home/vin/workspace/vcs/hydra/src/script/../lib/Hydra/Controller/Jobset.pm line 106
2021-05-09 17:52:48 -07:00
Graham Christensen
67b6f0d7ed
Merge pull request #962 from DeterminateSystems/del-.jobsets
...
Project: delete the `.jobsets` jobset if project is no longer declarative
2021-05-06 11:57:34 -04:00
Cole Helbling
6107040bf5
Project: clear decltype
and declvalue
when project is no longer declarative
2021-05-06 08:47:18 -07:00
Cole Helbling
bd9c52dbd0
Project: delete the .jobsets
jobset if project is no longer declarative
...
"No longer declarative" as defined by the "Edit project" page is an empty spec
file.
2021-05-05 14:03:51 -07:00
Graham Christensen
6c1151b14a
lazy tabs: trigger the load event
...
Something in the upgrade of Bootstrap and JQuery broke lazy tab loading.
I don't understand what is providing the tab behavior, how it should
work, or what the correct fix is.
I can tell you that this patch fixes the issue: when loading a tab
with a URL fragment deep-linking to a lazily loaded tab... it now
loads.
Close #959
2021-05-05 14:42:12 -04:00
Eelco Dolstra
886e6f85e4
Merge pull request #924 from hackworthltd/fix-flake-github-status
...
Fix GitHub status update for private flakes.
2021-05-03 16:24:51 +02:00
Cole Helbling
f3947acfc4
Projects: use JSON in Schema
2021-05-02 18:25:37 -07:00
Cole Helbling
ad13d13436
Project: add declfile, decltype, declvalue to API
...
This makes it possible to create declarative projects via a PUT request, and
also exposes the currently-configured values to GET requests.
2021-05-02 17:45:14 -07:00
Cole Helbling
7c9ed6b919
Project: fix DELETE route
...
This appears to have been broken in ac3e8a4a59
,
which removed the `jobsetevals` column from the Projects schema, but didn't
update the Controller accordingly.
Fixes the test added in the previous commit.
2021-04-30 10:43:21 -07:00
Cole Helbling
03d5a858a7
Jobset: list known inputs in invalid input type response
2021-04-29 18:19:44 -07:00