1c84676527
Fit more content on screen
2022-02-13 18:33:37 +01:00
6d146deaf0
build-graphs: Fix readability in dark mode
2022-02-13 14:00:17 +01:00
27ddde1e9e
dynamic runcommand: print a notice on the build page if it is disabled
2022-02-11 15:04:54 -05:00
a22a8fa62d
AddBuilds: reject declarative jobsets with dynamic runcommand enabled if disabled elsewhere
2022-02-11 14:35:52 -05:00
928ba9e854
Controller/{Jobset,Project}: error when enabling dynamic runcommand but it's disabled elsewhere
2022-02-11 14:35:52 -05:00
d680c209fe
edit-project.tt: disable when disabled by server
...
Also add a tooltip describing why it's disabled, to make it easier to
chase down.
2022-02-11 14:35:52 -05:00
6053e5fd4b
edit-jobset.tt: disable when disabled by project and server
...
Also add a tooltip describing why it's disabled, to make it easier to
chase down.
2022-02-11 14:35:52 -05:00
dfd3a67424
project.tt: more info on why Dynamic RunCommand is disabled
2022-02-11 14:35:52 -05:00
3f4f183792
jobset.tt: more info on why Dynamic RunCommand is disabled
2022-02-11 14:35:52 -05:00
71c06f2ce7
LDAP normalization errors: note that the error came while normalizing the roles.
2022-02-11 10:55:27 -05:00
f07fb7d279
LDAP support: include BC support for the YAML based loading
...
Includes a refactoring of the configuration loader.
2022-02-11 10:49:38 -05:00
61d74a7194
Redo LDAP config in the main configuration and add role mappings
2022-02-11 10:49:38 -05:00
d0bc0d0eda
Merge pull request #1152 from DeterminateSystems/parallel-tests
...
Parallel tests, fix a hydra-queue-runner race condition
2022-02-10 12:11:20 -05:00
4acaf9c8b0
hydra-queue-runner: don't dispatch until the machines parser has completed one run
...
Periodically, I have seen tests fail because of out of order queue runner behavior:
checking the queue for builds > 0...
loading build 1 (tests:basic:empty_dir)
aborting unsupported build step '...-empty-dir.drv' (type 'x86_64-linux')
marking build 1 as failed
adding new machine ‘localhost’
This patch should prevent the dispatcher from running before any machines are
made available.
2022-02-10 10:54:30 -05:00
9ae7c8bddc
Hydra::Helper::Exec add an expectOkay which dies with stdout / stderr on exit
2022-02-09 20:56:10 -05:00
845e6d4760
captureStdoutStderr*: move to Hydra::Helper::Exec which helps avoid some environment variable fixation problems
2022-02-09 14:28:50 -05:00
517dce285a
eval_added 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
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
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
8a18326f2b
Sort notification classes / events
2022-02-07 16:08:27 -05: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
bc1630bd27
fixup! RunCommand: Add a WIP execution of dynamic commands
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
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
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
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
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
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