d512e6220f
eval_failed event: change interface to traceID\tjobsetID
...
I was not going to break the interface until I noticed the other eval_* events used literal \ts
2022-02-08 09:51:35 -05:00
2597fa8c11
eval_cached event: change interface to traceID\tjobsetID\tevaluationID
...
I was not going to break the interface until I noticed
the current implementation uses the string literal \t.
2022-02-08 09:51:35 -05:00
be531c6c57
notifications.t: create a helper to parse the actual messages from the evaluator using the Event code
2022-02-08 09:51:35 -05:00
c30f084f32
eval_started event: change interface to traceID\tjobsetID
...
I was not going to break the interface until I noticed
the current implementation uses the string literal \t.
2022-02-08 09:51:35 -05:00
3864ca820a
Merge pull request #1144 from DeterminateSystems/eval-event-cleanup
...
Eval event cleanup
2022-02-08 09:50:33 -05:00
c0eb873379
notifications: document eval_*
2022-02-07 18:08:01 -05:00
f648e91487
StepFinished.t: fixup use
2022-02-07 16:08:40 -05:00
7107ce2bc7
t/Event/* -> t/Hydra/Event/
2022-02-07 16:08:40 -05:00
8a18326f2b
Sort notification classes / events
2022-02-07 16:08:27 -05:00
7b7c03a521
Merge pull request #1141 from amerocu/amerocu/fix-dev-env
...
missing develop dependencies
2022-02-06 14:35:27 -05:00
5ae26aa760
Update Nix to 2.6
2022-02-06 15:05:15 +01:00
73f2cc184f
missing develop dependencies
2022-02-05 20:28:44 +01:00
d8b56f022d
RunCommand: print a warning if the hook isn't run because the project / jobset doens't have it enabled
2022-02-01 10:58:54 -05:00
3aa2393091
Jobsets: add a supportsDynamicRunCommand which also checks the project's dynamic runcommand support
2022-02-01 10:58:54 -05:00
daa6864a58
Project result: add a supportsDynamicRunCommand helper
2022-02-01 10:58:54 -05:00
38514ae494
fanout tests: capture warnings and test their relevance
2022-02-01 10:58:54 -05:00
bc1630bd27
fixup! RunCommand: Add a WIP execution of dynamic commands
2022-02-01 10:58:54 -05:00
2635607b6e
whoops: add a test on the enable_dynamic_run_command field
2022-02-01 10:58:54 -05:00
8a96f07f58
Project: enable enabling dynamic runcommand per project
2022-02-01 10:58:54 -05:00
1affb1cfb1
jobset API: expose and check the enable_dynamic_run_command
2022-02-01 10:58:54 -05:00
726ea80e99
HTTP/Jobset: support setting / reading enable_dynamic_run_command
2022-02-01 10:58:54 -05:00
1802bd0113
Declarative Jobs: add support for the enable_dynamic_run_command flag
2022-02-01 10:58:54 -05:00
0810f5debc
finish making the dynamic hooks only run on project & jobset agreement
2022-02-01 10:58:54 -05:00
aef11685a0
regenerate schema files after adding the flag to the projects
2022-02-01 10:58:54 -05:00
0c96172c28
RunCommand: only run dynamic runcommand hooks if the project AND jobset agree they should be enabled
2022-02-01 10:58:54 -05:00
85a53694c8
sql: add enable_dynamic_run_command to the Project as well
2022-02-01 10:58:54 -05:00
a9bfabd672
sql: add a migration for enable_dynamic_run_command
2022-02-01 10:58:23 -05:00
3cce0c5ef6
Only run dynamic runcommand hooks if the jobset enables them
2022-02-01 10:57:30 -05:00
97a1d2d1d4
Jobsets: add enable_dynamic_run_command
2022-02-01 10:57:30 -05:00
216d8bee35
DynamicRunCommand: don't run if the build failed
2022-02-01 10:57:30 -05:00
1a30a0c2f1
Dynamic RunCommand: validate that the job's out exists, is a file (or points to a file) which is executable.
2022-02-01 10:57:30 -05:00
c2be27e82b
fanout.t: switch to makeAndEvaluateJobset
2022-02-01 10:57:30 -05:00
e7f68045f4
DynamicRunCommand: pull out the function determining if a build is
...
eligible for execution under dynamic run commands.
2022-02-01 10:57:30 -05:00
e56c49333f
RunCommand: Add a WIP execution of dynamic commands
...
This in-progress feature will run a dynamically generated set of
buildFinished hooks, which must be nested under the `runCommandHook.*`
attribute set. This implementation is not very good, with some to-dos:
1. Only run if the build succeeded
2. Verify the output is named $out and that it is an executable file
(or a symlink to a file)
3. Require the jobset itself have a flag enabling the feature, since
this feature can be a bit dangerous if various people of different
trust levels can create the jobs.
2022-02-01 10:57:30 -05:00
ea311a0eb4
RunCommand: enable the plugin if dynamicruncommand is set
2022-02-01 10:57:30 -05:00
6ffc93c01a
RunCommand: write documentation for dynamic commands
2022-02-01 10:57:30 -05:00
4ea646130c
RunCommand: split out documentation, fixup the matcher syntax
2022-02-01 10:57:30 -05:00
85b842e0ac
Merge pull request #1137 from DeterminateSystems/runcommand-logs
...
Store and display the output of RunCommands
2022-01-31 16:26:31 -05:00
b57345ba1f
hydra.sql: add IndexRunCommandLogsOnBuildID index
2022-01-31 12:56:34 -08:00
d0b6329aa8
sql/upgrade-81: remove unnecessary comment
2022-01-31 12:55:36 -08:00
9c4e6f78e7
hydra-module: don't bzip2 runcommand-logs
2022-01-31 12:55:36 -08:00
8c67e32480
RunCommand: ensure we reset the umask
2022-01-31 12:55:36 -08:00
34e4c119f4
build.tt: don't duplicate RunCommandLog buttons
2022-01-31 11:40:16 -08:00
61189ecca9
Helper/Nix: constructRunCommandLogPath: verify uuid is valid
...
This shouldn't be possible normally, but it is possible to:
$db->resultset('RunCommandLogs')->new({ uuid => "../etc/passwd" });
if you have access to the `$db`.
2022-01-31 08:58:33 -08:00
e381751564
Helper/Nix: constructRunCommandLogPath: return undef in case of an error
...
This allows us to give a web request to an invalid UUID a 404.
2022-01-31 08:58:33 -08:00
2c6487b8d7
t/Helper: test constructRunCommandLogPath
2022-01-31 08:58:33 -08:00
8bf3cdbc67
t/Helper: switch to using test_context()
2022-01-31 08:58:33 -08:00
8eab7b8543
Helper/Nix: constructRunCommandLogPath: take RunCommandLog as input
...
This way we ensure that it actually exists in the database, rather than
blindly trusting user-generated input.
2022-01-31 08:58:33 -08:00
61914d56c6
runcommand-log.tt: escape the command
2022-01-31 08:58:33 -08:00
71bbb042db
build.tt: link to the pretty, raw, and tail versions of the log
...
Also split it out to a new div -- there are now 3 lines per
RunCommandLog -- the first saying when it started, the second saying how
long it ran for (or has been running), and the third with the buttons
for the pretty, raw, and tail versions of the log.
2022-01-31 08:58:33 -08:00