Cole Helbling 
							
						 
					 
					
						
						
							
						
						dfd3a67424 
					 
					
						
						
							
							project.tt: more info on why Dynamic RunCommand is disabled  
						
						
						
						
					 
					
						2022-02-11 14:35:52 -05:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						3f4f183792 
					 
					
						
						
							
							jobset.tt: more info on why Dynamic RunCommand is disabled  
						
						
						
						
					 
					
						2022-02-11 14:35:52 -05:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						3b895aec54 
					 
					
						
						
							
							DynamicRunCommand: needs to be enabled by server, project, and jobset  
						
						
						
						
					 
					
						2022-02-11 14:35:52 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						3aa2393091 
					 
					
						
						
							
							Jobsets: add a supportsDynamicRunCommand which also checks the project's dynamic runcommand support  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						daa6864a58 
					 
					
						
						
							
							Project result: add a supportsDynamicRunCommand helper  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						38514ae494 
					 
					
						
						
							
							fanout tests: capture warnings and test their relevance  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						bc1630bd27 
					 
					
						
						
							
							fixup! RunCommand: Add a WIP execution of dynamic commands  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						2635607b6e 
					 
					
						
						
							
							whoops: add a test on the enable_dynamic_run_command field  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						8a96f07f58 
					 
					
						
						
							
							Project: enable enabling dynamic runcommand per project  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						1affb1cfb1 
					 
					
						
						
							
							jobset API: expose and check the enable_dynamic_run_command  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						726ea80e99 
					 
					
						
						
							
							HTTP/Jobset: support setting / reading enable_dynamic_run_command  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						1802bd0113 
					 
					
						
						
							
							Declarative Jobs: add support for the enable_dynamic_run_command flag  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						0810f5debc 
					 
					
						
						
							
							finish making the dynamic hooks only run on project & jobset agreement  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						aef11685a0 
					 
					
						
						
							
							regenerate schema files after adding the flag to the projects  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
							
						
						85a53694c8 
					 
					
						
						
							
							sql: add enable_dynamic_run_command to the Project as well  
						
						
						
						
					 
					
						2022-02-01 10:58:54 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						a9bfabd672 
					 
					
						
						
							
							sql: add a migration for enable_dynamic_run_command  
						
						
						
						
					 
					
						2022-02-01 10:58:23 -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 
							
						 
					 
					
						
						
							
						
						97a1d2d1d4 
					 
					
						
						
							
							Jobsets: add enable_dynamic_run_command  
						
						
						
						
					 
					
						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 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						6ffc93c01a 
					 
					
						
						
							
							RunCommand: write documentation for dynamic commands  
						
						
						
						
					 
					
						2022-02-01 10:57:30 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						4ea646130c 
					 
					
						
						
							
							RunCommand: split out documentation, fixup the matcher syntax  
						
						
						
						
					 
					
						2022-02-01 10:57:30 -05:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						85b842e0ac 
					 
					
						
						
							
							Merge pull request  #1137  from DeterminateSystems/runcommand-logs  
						
						... 
						
						
						
						Store and display the output of RunCommands 
						
						
					 
					
						2022-01-31 16:26:31 -05:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						b57345ba1f 
					 
					
						
						
							
							hydra.sql: add IndexRunCommandLogsOnBuildID index  
						
						
						
						
					 
					
						2022-01-31 12:56:34 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						d0b6329aa8 
					 
					
						
						
							
							sql/upgrade-81: remove unnecessary comment  
						
						
						
						
					 
					
						2022-01-31 12:55:36 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						9c4e6f78e7 
					 
					
						
						
							
							hydra-module: don't bzip2 runcommand-logs  
						
						
						
						
					 
					
						2022-01-31 12:55:36 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						8c67e32480 
					 
					
						
						
							
							RunCommand: ensure we reset the umask  
						
						
						
						
					 
					
						2022-01-31 12:55:36 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						34e4c119f4 
					 
					
						
						
							
							build.tt: don't duplicate RunCommandLog buttons  
						
						
						
						
					 
					
						2022-01-31 11:40:16 -08: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 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
							
						
						61914d56c6 
					 
					
						
						
							
							runcommand-log.tt: escape the command  
						
						
						
						
					 
					
						2022-01-31 08:58:33 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						3594ba942a 
					 
					
						
						
							
							Controller/Build: use showLog in view_runcommandlog  
						
						... 
						
						
						
						This also adds the `runcommandlog` object to the stash so that we can
access its uuid as well as command run in order to display more useful
and specific information on the webpage. 
						
						
					 
					
						2022-01-31 08:58:33 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						1d0076408b 
					 
					
						
						
							
							Controller/Build: pass log_uri to showLog in place of drvPath  
						
						... 
						
						
						
						This way, we can reuse the `showLog` sub for other things, such as
`view_runcommandlog` (which doesn't have a drvPath attached). 
						
						
					 
					
						2022-01-31 08:58:33 -08:00 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						ff390e89a6 
					 
					
						
						
							
							Controller/Build: remove unused parameter from showLog  
						
						
						
						
					 
					
						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 
						 
				 
			
				
					
						
							
							
								Cole Helbling 
							
						 
					 
					
						
						
							
						
						fc3cf4ecb2 
					 
					
						
						
							
							RunCommandLogs: identify and access via uuid  
						
						... 
						
						
						
						Using a sha1 of the command combined with the build ID is not a
particularly good or unique identifier:
* A build could fail, be restarted, and then succeed -- assuming no
configuration changes, the sha1 hash of the command as well as the build
ID will be the same. This would lead to an overwritten log file.
* Allowing user input to influence filenames is not the best of ideas. 
						
						
					 
					
						2022-01-31 08:58:33 -08:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						dcb0c1425c 
					 
					
						
						
							
							RunCommandLogs: set a UUID automatically  
						
						
						
						
					 
					
						2022-01-31 08:58:33 -08:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						89e8676d80 
					 
					
						
						
							
							UUID4Tiny: init  
						
						
						
						
					 
					
						2022-01-31 08:58:33 -08:00 
						 
				 
			
				
					
						
							
							
								Graham Christensen 
							
						 
					 
					
						
						
							
						
						cf49a05ff5 
					 
					
						
						
							
							RunCommandLogs: add a uuid to each log entry  
						
						
						
						
					 
					
						2022-01-31 08:58:33 -08:00