https://github.com/mikogs/charlotte
WIP. Set of tools to easily execute simple jobs in bash and golang on a set of workers. Sort of CI
https://github.com/mikogs/charlotte
Last synced: 11 months ago
JSON representation
WIP. Set of tools to easily execute simple jobs in bash and golang on a set of workers. Sort of CI
- Host: GitHub
- URL: https://github.com/mikogs/charlotte
- Owner: mikogs
- License: bsd-2-clause
- Created: 2023-10-27T19:49:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-13T08:03:40.000Z (over 1 year ago)
- Last Synced: 2025-02-13T08:48:23.490Z (over 1 year ago)
- Language: Go
- Homepage:
- Size: 12.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
- [x] pipe stdout and stderr to files
- [x] environment (global and in-step)
- [x] variables
- [x] job inputs
- [x] step outputs
- [x] `continue_on_error`
- [x] values using golang templates
- [x] `if` - conditional steps (value templated, must equal to string `'true'`)
- [x] running step(s) on success
- [x] running step(s) on failure
- [x] running step(s) always
- [x] tmp directory for step outputs
- [x] gather job outputs
- [x] write job outputs to json file
- [x] handle input: `--inputs`, `--job`, `--result` without aliases (and `--quiet`)
- [x] 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.