Yet another HTTP task runner?
Yes.
Small scale deployments on single machines rarely need sophisticated build systems.
Some times, simple scripts can be all it takes to deploy software.
This aims to provide exactly that.
The example configuration can serve as starting point to define a YAML of the configuration. By default, the program would look for config.yaml
in the working directory (that can be overriden using --config
option).
This program works by:
- HTTP listen on LISTEN port defined in configuration (using format
:xxxx
) - add prefix to endpoints
- for each task specified in the configuration:
RunnerExecutable
that will be ranArgs
that will be passed to theRunnerExecutable
MaxRunSeconds
that each task will be allowed to run
- The program would create the directory
logs
inside the working directory, that would be the log of builds
Each taskKey (buildBackend
in the example config) would result in these endpoints:
{{routePrefix}}/tasks/{{taskKey}}
would trigger the task.{{routePrefix}}/logs/{{taskKey}}
would list history of task execution (specified as timestamp entries), each should containout.log
anderr.log
(stdout and stderr of the task execution).