werk
werk
Dead simple task runner. Now with support for Docker.
Build status
Installation
You can follow the installation guide available here.
Documentation
For more information on how to get started, please check the wiki.
Features
- [x] Automatic determination of the execution plan
- [x] Parallel jobs execution
- [x] Shell executor
- [x] Docker executor
- [x] Real-time output support for parallel jobs
- [x] Simple configuration DSL based on YAML
- [x] Execution report
- [ ] Web UI for browsing the execution reports (?)
- [x] Enable logging
Example
Create a werk.yml with the following content:
version: "1"
description: "Manage Werk with Werk"
jobs:
  main:
    description: "Build application"
    executor: local
    commands:
      - shards build
    needs:
      - lint
      - test
  lint:
    description: "Lint code"
    executor: docker
    image: veelenga/ameba
    commands:
      - ameba
    can_fail: true
  test:
    description: "Test code"
    executor: local
    commands:
      - crystal spec
  docs:
    description: Generate API documentation
    executor: local
    commands:
      - crystal docs
      - open docs/index.html
    silent: true
after that, you can run
werk run
You can also start individual jobs by specifying a target like this:
werk run lint
Here's another example; in this case, I'm building Werk using itself.
Contributing
- Fork it (https://github.com/marghidanu/werk/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- Tudor Marghidanu - creator and maintainer