Skip to content

WIP. Set of tools to easily execute simple jobs in bash and golang on a set of workers. Sort of CI

License

Notifications You must be signed in to change notification settings

mikolajgs/charlotte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

charlotte

Job

Simple app that takes a YAML file that contains a set of steps which are bash scripts, wrapped into simple logic, inputs, outputs etc. and executes it.

Running test suite

make test

Building job binary

cd cmd/job
go build .

Running job

cd cmd/job
./job run-local -j ../../sample-files/job.yaml -r /tmp/job-result.txt -i ../../sample-files/job-inputs.json --quiet
cat /tmp/job-result.txt

Also, there are test files in the pkg/job/runtime/local/tests directory that can be used.

v0.1

  • pipe stdout and stderr to files
  • environment (global and in-step)
  • variables
  • job inputs
  • step outputs
  • continue_on_error
  • values using golang templates
  • if - conditional steps (value templated, must equal to string 'true')
  • running step(s) on success
  • running step(s) on failure
  • running step(s) always
  • tmp directory for step outputs
  • gather job outputs
  • write job outputs to json file
  • handle input: --inputs, --job, --result without aliases (and --quiet)
  • prepare sample yaml files - same as the test ones, so the test would just include them?

v0.2

  • validation
  • extract steps so that they can be included (include file with inputs) + proper validation for that
  • ...

Pipeline

Layer on top of Jobs.

About

WIP. Set of tools to easily execute simple jobs in bash and golang on a set of workers. Sort of CI

Resources

License

Stars

Watchers

Forks