Commit graph

2791 commits

Author SHA1 Message Date
John Ericson e7a1ae87aa simplify, computeFSClosure can take a set now 2022-01-20 14:53:01 -05:00
Graham Christensen 8c50cd06e4 machines: ensure the jobset name is present 2022-01-15 17:11:08 -05:00
Graham Christensen c8dc6a9419 Plugins: get project and jobset information from the project and jobset tables 2022-01-15 15:58:02 -05:00
Graham Christensen 9dc40e0816 evaluator: don't save project, jobset on builds 2022-01-15 15:58:02 -05:00
Graham Christensen c539deea99 builds: add a build->project func to get the project via the jobset 2022-01-15 15:58:02 -05:00
Graham Christensen f120909547 builds: drop project, jobset columns
Indexes were haphazardly dropped.
2022-01-15 15:58:02 -05:00
Graham Christensen 1caff3a250
Merge pull request #1117 from DeterminateSystems/project-jobset/queue-runner
queue-runner: track jobsets by ID
2022-01-15 15:57:14 -05:00
Graham Christensen 9671d4d135
Merge pull request #1119 from DeterminateSystems/project-jobset/update-gc-roots
Project jobset: update-gc-roots
2022-01-15 15:57:06 -05:00
Graham Christensen 7544d4ff47 hydra-update-gc-roots: get project and jobset information from the project and jobset tables 2022-01-15 14:26:45 -05:00
Graham Christensen 72c3110002 queue-runner: track jobsets by ID 2022-01-15 14:06:00 -05:00
Graham Christensen 17c6bd4fd8 DeclarativeJobsets: get the jobset name from the jobset table 2022-01-15 13:46:32 -05:00
Graham Christensen b2cdde0901 DeclarativeJobsets: test basic functionality 2022-01-15 13:46:32 -05:00
Graham Christensen 8c3c573953 hydra-eval-jobset: fixup old reference to project / jobset columns 2022-01-15 12:32:16 -05:00
Graham Christensen 2abcd84931
Merge pull request #1115 from DeterminateSystems/project-jobset/builds-json-repr
Project jobset: update builds json repr
2022-01-15 12:09:45 -05:00
Graham Christensen 6bb9adc1a5 Builds: get the project and jobset names from the their tables 2022-01-14 22:45:26 -05:00
Graham Christensen f4c4b496d8 Projects: delete: delete all builds first
Deleting jobsets first would fail because buildmetrics has an FK
to the jobset. However, the jobset / project relationship is not
marked as CASCADE.

Deleting all the builds automatically cascades to delete
buildmetrics, so deleting the relevant builds first, then deleting
the jobset solves it.
2022-01-14 20:37:55 -05:00
Graham Christensen 31c6c26121 common.tt: fixup refs 2022-01-14 16:49:58 -05:00
Graham Christensen c7c4759600 search: fix references to jobset / project info 2022-01-14 16:38:25 -05:00
Graham Christensen 0b33550871 search.tt: fixup project and jobset reference 2022-01-14 16:38:25 -05:00
Graham Christensen 42a871e413
Merge pull request #1111 from DeterminateSystems/project-jobset/queue-summary-machines
Project jobset columns: fixup /queue-summary and /machines
2022-01-14 15:34:43 -05:00
Graham Christensen 8a663f2cf8 machines: fixup refs 2022-01-14 15:23:19 -05:00
Graham Christensen c945529f05 queue summary: fix refs 2022-01-14 15:23:19 -05:00
Graham Christensen a81e358016 API: test api/push-github 2022-01-14 14:57:32 -05:00
Graham Christensen 20db82b001 API test /api/push 2022-01-14 14:57:24 -05:00
Graham Christensen fe095a56c5 API: test /nrbuilds and fix jobset / project references 2022-01-14 14:57:15 -05:00
Graham Christensen 86473f4b3c API: fixup filtering latestbuilds by project and jobset 2022-01-14 14:57:10 -05:00
Graham Christensen 1f49a5af66 Fixup project name, jobset name, in buildToHash 2022-01-14 14:57:00 -05:00
Graham Christensen 97596c3e93 buildListColumns: remove project, jobset. 2022-01-14 12:48:48 -05:00
Graham Christensen 2803f06e6e CatalystUtils::buildListColumns: add jobset_id 2022-01-14 11:28:39 -05:00
Graham Christensen 12ff981d24 Builds: LatestSucceeded*: remove project, jobset references 2022-01-14 11:28:39 -05:00
Graham Christensen 5c5ecdb9fc Helper::Nix::isLocalStore: a file store is local 2022-01-14 11:28:39 -05:00
Graham Christensen e019028ce9 common.tt: access project and jobset names from respective tables 2022-01-14 11:28:39 -05:00
Graham Christensen 4086f3bafd Result::Projects: give a builds method to access all of a project's builds 2022-01-14 11:28:39 -05:00
Graham Christensen 29f9e30b10
Merge pull request #1107 from DeterminateSystems/runcommand/project-jobset-name
RunCommand: update the source of project and jobset names
2022-01-14 09:26:07 -05:00
Graham Christensen 42edd3a9d8 hydra-notify: respond to cached_build_queued 2022-01-14 09:13:17 -05:00
Graham Christensen 6b7f1da11e hydra-notify: operate on cached_build_finished events 2022-01-14 09:13:17 -05:00
Graham Christensen 5b35a597b4 RunCommand: update project / jobset name refs 2022-01-13 20:44:51 -05:00
Maximilian Bosch a18b487403
hydra-queue-runner: support store URIs declaring an alternate store location
When having a builder like this in `/etc/nix/machines`

    ssh://mfbuild?remote-store=/home/bosch/store

Hydra cannot build there since it tries to pass the entire value to
`ssh(1)` which doesn't work. Also, an alternate store-location is e.g.
used if the user isn't a trusted user on the remote system and thus
cannot use `/nix/store`.

If such a URI is given, Hydra will now add a `--store /home/bosch/store`
to the `ssh`-command to select the appropriate location remotely.
2022-01-12 15:56:05 +01:00
Graham Christensen 96b2200895 hydra-notify: sort subscriptions 2022-01-11 13:28:04 -05:00
Graham Christensen 4da80e736e hydra-eval-jobset: send notifications when cached queued / finished builds are submitted 2022-01-11 13:28:04 -05:00
Graham Christensen f30ca3c423 showJobName: use jobset/project columns 2022-01-11 11:51:31 -05:00
Graham Christensen ceb6ea252a CatalystUtils.pm: don't use Hydra::Helper::Nix
Using it causes database information to get fixated early, before tests can set a
new database. We only used it in one case, and that is an absolute reference anyway. The
tests for channel generation are passing, and that uses
[requireLocalStore, so this should be fine.
2022-01-11 11:47:42 -05:00
Cole Helbling 9b12a88d81 BuildDiff: ensure buildstatus is defined
buildstatus won't be defined if e.g. a build is queued but none have
failed.
2022-01-10 12:11:06 -08:00
Cole Helbling b98dbe01c3 BuildDiff: slight cleanup
Remove debugging Data::Dumper import, make comment describing function
inputs more readable.
2022-01-10 12:11:06 -08:00
Cole Helbling ef6a2c96e7 JobsetEval: add the result of buildDiff to $c->stash 2022-01-10 12:11:06 -08:00
Cole Helbling 98375e9086 BuildDiff: bring back the sort 2022-01-10 12:11:05 -08:00
Cole Helbling ceb81e7d78 BuildDiff: actual list reference to $builds2 2022-01-10 12:11:05 -08:00
Cole Helbling 458214381d BuildDiff: document what the inputs mean
They were tripping me up, so it helped to know exactly what they were at
the ~point they're used.
2022-01-10 12:11:05 -08:00
Cole Helbling ff12218d02 BuildDiff: cleanup imports and make slightly more readable 2022-01-10 12:11:05 -08:00
Cole Helbling ec98bdaaaa BuildDiff: move cmdBuilds from Controller/JobsetEval 2022-01-10 12:11:05 -08:00
Cole Helbling 0c51f3ca7d BuildDiff: make actual hash ref 2022-01-10 12:11:05 -08:00
Cole Helbling 1349887974 BuildDiff: split out from JobsetEval GET impl 2022-01-10 12:11:05 -08:00
Cole Helbling aba0422865 JobsetEval: allow restarting failed builds even with no eval to compare to 2022-01-10 12:10:56 -08:00
Graham Christensen 98c88a4dbf
Merge pull request #1097 from DeterminateSystems/api-test-warnings
Api test warnings: clean up
2022-01-10 14:03:38 -05:00
Graham Christensen 265908c1cd
Merge pull request #1099 from helsinki-systems/feat/dark-theme
Provide a dark theme when the user prefers it
2022-01-10 14:01:36 -05:00
Janne Heß 680cd43e40
Provide a dark theme when the user prefers it 2022-01-10 19:33:51 +01:00
Graham Christensen e254b62f13
Merge pull request #1096 from DeterminateSystems/pathinput-revision-hash
PathInput: make the hash part of the revision
2022-01-10 13:32:58 -05:00
Janne Heß a69693a832
hydra-eval-jobset: Fix two minor bugs
I'm honestly too lazy to create two commits for fixing these one-line
issues so here's one.

The first hunk fixes the name of the projectName input. This is relevant
now because it gets logged and the log message looks stupid when there
is an input without a name.

The second hunk fixes a warning when using declarative non-flake
jobsets. The implementation may look weird but it's just the same as the
logical implication operator of nix.
2022-01-10 18:28:41 +01:00
Graham Christensen 3874db4fb7 PathInput: make the hash part of the revision 2022-01-10 11:23:22 -05:00
Graham Christensen 832fa8c73d Controller/Jobset: make some warnings about undef's go away 2022-01-10 10:33:33 -05:00
Graham Christensen e72d2225e9
Merge pull request #1094 from helsinki-systems/feat/print-whats-evaluated
hydra-eval-jobset: Print the jobset that is evaluated
2022-01-10 09:29:46 -05:00
Janne Heß 22f9045a03
Merge branch 'master' into feat/print-whats-evaluated 2022-01-10 13:45:57 +01:00
Janne Heß f3d77c3e6b
hydra-eval-jobset: Print the jobset that is evaluated
This is useful for systems that use concurrent evals
2022-01-10 13:44:07 +01:00
Graham Christensen 1505a56a70 build.tt: only show RunCommandLogs tab if there are any to show 2022-01-07 15:14:02 -05:00
Graham Christensen 2f382ba067 Add migration 79: RunCommand logs 2022-01-07 15:05:33 -05:00
Graham Christensen fe149613b3 Builds page: show RunCommand logs 2022-01-07 15:05:33 -05:00
Graham Christensen a7aeb766aa RunCommandLogs: add a helper for if it failed with an exec error 2022-01-07 15:05:33 -05:00
Graham Christensen d849856dcd RunCommandLogs: add helpers for if it is running/failed/signaled 2022-01-07 15:05:33 -05:00
Graham Christensen c81acbf93e RunCommandLogs: test recording a signaled process without a core dump 2022-01-07 15:05:33 -05:00
Graham Christensen d003fec8a5 RunCommandLogs: add a did_succeed helper 2022-01-07 15:05:33 -05:00
Graham Christensen 5bb3e2be78 Record the errno if exec fails 2022-01-07 15:05:33 -05:00
Graham Christensen 4ce8239cea RunCommand: create run logs for each execution 2022-01-07 15:05:33 -05:00
Graham Christensen 52843195db RunCommandLogs: init table 2022-01-07 15:05:33 -05:00
Graham Christensen 9708f6bf6f Fetch the tracker HTML from the config file, remove HYDRA_TRACKER
The indentation in the hydra.conf makes it possible to include multi-line
strings without it being likely that the contents of the tracker
is mis-parsed or interrupts tho config parser.

It isn't impossible / foolproof probably, but it shouldn't be likely.
2022-01-05 15:27:21 -05:00
Graham Christensen 2db422f7b0 Event: interested -> interestedIn 2021-12-21 20:57:53 -05:00
Graham Christensen e84bbc7f90 hydra-eval-jobset: notify build_queued 2021-12-21 20:57:53 -05:00
Graham Christensen a14501c616 Tasks: only execute the event if the plugin is interested in it 2021-12-21 20:57:53 -05:00
Graham Christensen 633fc36d6a TaskDispatcher: pre-declare the notify_no_such_plugin metric 2021-12-21 20:57:53 -05:00
Graham Christensen d195e545f5 hydra-notify: listen for build_queued events 2021-12-21 20:57:53 -05:00
Graham Christensen cf514baaf2 hydra-notify: track the duration of handling an event
Currently we only track how long individual plugins take.
With #1083 we stop executing a lot of plugins, but we
don't have a way to measure its practical impact on the
execution time of handling events.
2021-12-21 19:46:19 -05:00
Graham Christensen f2f8d571f3 queue-runner-status: fixup from perlcritic-level-2
>
> from_json was legacy / deprecated. This was the only use.
2021-12-15 17:24:23 -05:00
Graham Christensen e43f487157 perlcritic: return undef in list context too 2021-12-14 10:24:53 -05:00
Graham Christensen aa7b37838a PerlCritic: MoreUtils -> SomeUtils 2021-12-14 10:16:25 -05:00
Graham Christensen a658b80863 perlcritic: Readonly -> ReadonlyX 2021-12-14 10:16:25 -05:00
Graham Christensen 30a7f068b7 AttributeSet helper: skip wantarray 2021-12-14 10:16:25 -05:00
Graham Christensen d2f03ca050 fixup foreach 2021-12-14 10:16:25 -05:00
Graham Christensen 4dfe787bc2 perlcritic: each() called at line 752, column 35. The each function may cause undefined behavior when operating on the hash while iterating. Use a foreach loop over the hash's keys or values instead. 2021-12-14 10:16:25 -05:00
Graham Christensen 7dcf6a01c6 JSON -> JSON::MaybeXS 2021-12-13 15:37:56 -05:00
Graham Christensen 26b197ea62 RunCommand: calculate all the commands to run against before starting 2021-12-08 20:29:32 -05:00
Graham Christensen 2ce0ab9f51 RunCommand: move JSON generation to its own function 2021-12-08 20:09:48 -05:00
Graham Christensen 7a5b8a38d9
builds page: capitalize tabs (#1072)
Make tabs Title Case
2021-12-08 20:02:14 -05:00
Graham Christensen 2cbeca5c44
Merge pull request #1071 from DeterminateSystems/log-fetches-evals
hydra-eval-jobset: log fetches and evaluations
2021-12-08 16:00:29 -05:00
Graham Christensen 264092169c hydra-eval-jobset: log fetches and evaluations 2021-12-08 09:25:27 -05:00
Cole Helbling 47cabac4bf hydra-eval-jobset: fix use of uninitialized value
This happens with flake jobsets for obvious reasons (namely, that nixexprinput
and nixexprpath may be undefined for a flake jobset).

12:38:59 hydra-evaluator.1    | Use of uninitialized value $args[0] in join or string at /home/vin/workspace/vcs/hydra/src/script/hydra-eval-jobset line 648.
12:38:59 hydra-evaluator.1    | Use of uninitialized value $args[1] in join or string at /home/vin/workspace/vcs/hydra/src/script/hydra-eval-jobset line 648.
2021-12-03 12:12:53 -08:00
Cole Helbling 5659d2982c Hydra/Controller/Root: remove deprecated LocalRegex
11:38:20 hydra-server.1       | DEPRECATION WARNING: The Regex dispatch type is deprecated.
11:38:20 hydra-server.1       |   It is recommended that you convert Regex and LocalRegex
11:38:20 hydra-server.1       |   methods to Chained methods. at /nix/store/aa6gw57fnahd4824pbhmvcs0jlypmynq-hydra-perl-deps/lib/perl5/site_perl/5.32.1/Catalyst/DispatchType/Regex.pm line 210.
2021-12-03 12:12:53 -08:00
Cole Helbling d56815cae6 Hydra/Helper/CatalystUtils: default trim arg to empty string
12:34:12 hydra-server.1       | Use of uninitialized value $s in substitution (s///) at /home/vin/workspace/vcs/hydra/src/script/../lib/Hydra/Helper/CatalystUtils.pm line 283, <$fh> line 1.
2021-11-30 13:10:31 -08:00
Cole Helbling 78233b8083 Hydra: Unicode::Encoding is auto-applied
11:28:20 hydra-server.1       | [warn] Unicode::Encoding plugin is auto-applied, please remove this from your appclass and make sure to define "encoding" config
2021-11-30 12:42:05 -08:00
Cole Helbling f26b3e1779 Hydra/Event: fix scalar context warning
12:10:15 hydra-notify.1       | %channels_to_events{...} in scalar context better written as $channels_to_events{...} at /home/vin/workspace/vcs/hydra/src/lib/Hydra/Event.pm line 20.
2021-11-30 12:42:01 -08:00
Graham Christensen b06457c75c Titles of pages: make project:jobset:job names clickable
But don't make the final element clickable when we're looking at that
thing.
2021-11-22 20:20:06 -05:00
Graham Christensen f1343b3a4c layout.tt: support a title with HTML in it
By default, title is escaped. To support links in titles, support
providing the title with HTML in it.
2021-11-22 13:38:53 -05:00