mirror of
https://github.com/actions/runner.git
synced 2025-12-12 05:37:01 +00:00
Runner Job Started/Completed Hooks (#1737)
* Prototype for pre job hook * Remove debug log * Enable hooks again * Initialize with hostContext * Add event_path, fix no-path bug * Allow script post steps * Call script handler with correct pre post stage * Add job completed hook * Make filecommand work and hardcode shell * Conditionally print step details and no telemetry for hooks * Figure out whih script to use * Only check path for managed scripts * Resture win dependency * Nits * Remove unused, add named params * Telemetry + refactoring * add message to job * rename hooks remove stale comment * cleanup * Use .CreateService to create step * Add L0s * pr feedback * update tests * add disclaimer, clean up code * spacing fix * little more cleanup * pr fix * pr feedback * Refactor to use JobExtension * fix tests * fix typo * cleanup code * more cleanup * little more cleanup * last bit of cleanup * fix tests * nit fix * Update src/Runner.Worker/JobHookProvider.cs Co-authored-by: Edward Thomson <ethomson@github.com> * don't override runner telemtry * pr feedback * pr feedback * pr feedback Co-authored-by: Thomas Boop <thboop@github.com> Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com> Co-authored-by: Edward Thomson <ethomson@github.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using GitHub.Runner.Sdk;
|
||||
|
||||
namespace GitHub.Runner.Worker.Handlers
|
||||
{
|
||||
@@ -79,5 +81,22 @@ namespace GitHub.Runner.Worker.Handlers
|
||||
throw new ArgumentException($"Failed to parse COMMAND [..ARGS] from {shellOption}");
|
||||
}
|
||||
}
|
||||
|
||||
internal static string GetDefaultShellForScript(string path, Common.Tracing trace, string prependPath)
|
||||
{
|
||||
var format = "{0} {1}";
|
||||
switch (Path.GetExtension(path))
|
||||
{
|
||||
case ".sh":
|
||||
// use 'sh' args but prefer bash
|
||||
var pathToShell = WhichUtil.Which("bash", false, trace, prependPath) ?? WhichUtil.Which("sh", true, trace, prependPath);
|
||||
return string.Format(format, pathToShell, _defaultArguments["sh"]);
|
||||
case ".ps1":
|
||||
var pathToPowershell = WhichUtil.Which("pwsh", false, trace, prependPath) ?? WhichUtil.Which("powershell", true, trace, prependPath);
|
||||
return string.Format(format, pathToPowershell, _defaultArguments["powershell"]);
|
||||
default:
|
||||
throw new ArgumentException($"{path} is not a valid path to a script. Make sure it ends in '.sh' or '.ps1'.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user