Graham Christensen
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
Graham Christensen
3cce0c5ef6
Only run dynamic runcommand hooks if the jobset enables them
2022-02-01 10:57:30 -05:00
Graham Christensen
216d8bee35
DynamicRunCommand: don't run if the build failed
2022-02-01 10:57:30 -05:00
Graham Christensen
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
Graham Christensen
c2be27e82b
fanout.t: switch to makeAndEvaluateJobset
2022-02-01 10:57:30 -05:00
Graham Christensen
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
Graham Christensen
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
Graham Christensen
ea311a0eb4
RunCommand: enable the plugin if dynamicruncommand is set
2022-02-01 10:57:30 -05:00
Cole Helbling
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
Cole Helbling
2c6487b8d7
t/Helper: test constructRunCommandLogPath
2022-01-31 08:58:33 -08:00
Cole Helbling
8bf3cdbc67
t/Helper: switch to using test_context()
2022-01-31 08:58:33 -08:00
Cole Helbling
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
Cole Helbling
38896db6b6
t/RunCommand: init http.t
...
Test that we can indeed visit the pages of a valid runcommand log and
not of an invalid one.
2022-01-31 08:58:33 -08:00
Cole Helbling
47c1f89d5a
t/RunCommand: fixup basic.t to use uuid
2022-01-31 08:58:33 -08:00
Graham Christensen
dcb0c1425c
RunCommandLogs: set a UUID automatically
2022-01-31 08:58:33 -08:00
Cole Helbling
3e722f1d0a
t/RunCommand: remove duplicate use
2022-01-28 13:07:11 -08:00
Cole Helbling
988e79c6e5
t/RunCommand: test that the log file exists on the filesystem
2022-01-28 13:07:11 -08:00
Graham Christensen
b2cdde0901
DeclarativeJobsets: test basic functionality
2022-01-15 13:46:32 -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
cb68629417
test a Build's json representation
2022-01-14 21:19:48 -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
0044622198
Projects: test deleting
2022-01-14 20:36:52 -05:00
Graham Christensen
8ae2daece7
root: test /steps and /evals
2022-01-14 16:49:58 -05:00
Graham Christensen
e0e8840d8f
Test /search
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
bdccad573c
machines: test
2022-01-14 15:23:19 -05:00
Graham Christensen
da516f70a4
queue summary: test
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
e5c8a35423
API: test fetching the queue and latestbuilds
2022-01-14 14:57:03 -05:00
Graham Christensen
8383679bf6
test /queue and /status, both of which use buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen
59d0259220
test /eval/ID/channel works
...
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen
2de40f86ec
test /job/PROJECT/JOBSET/JOB works
...
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen
4a07622195
test /job/PROJECT/JOBSET/JOB/prometheus works
...
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen
b37ca88fd5
test /job/PROJECT/JOBSET/JOB/shield works
...
Uses buildListColumns
2022-01-14 12:48:51 -05:00
Graham Christensen
796cae0fd0
Test Job's builds and channel pages
2022-01-14 11:52:07 -05:00
Graham Christensen
a2adb8cfb6
Test Jobset's builds and channel pages
2022-01-14 11:28:39 -05:00
Graham Christensen
23d7046522
t/Controller/Build/constituents.t: assert the response is valid JSON, dump if it isn't
2022-01-14 11:28:39 -05:00
Graham Christensen
9291cba89f
Project: tests we can get the channel for the latest builds
2022-01-14 11:28:39 -05:00
Graham Christensen
dcefb88373
test /project/NAME/all returns a 200
2022-01-14 11:28:39 -05:00
Graham Christensen
2b163aa78b
CatalystUtils::showJobName: write a basic test that shows it works
2022-01-11 11:48:02 -05:00
Graham Christensen
ca6ba409de
Relocate new tests in to the Hydra subdir
2022-01-11 09:54:51 -05:00
Graham Christensen
a5d1d36fa6
Tests: restructure to more closely mirror the sources
...
t/ had lots of directories and files mirroring src/lib/Hydra. This moves
those files under t/Hydra
2022-01-10 15:34:52 -05:00