werk

Dead simple task runner with concurrent support, ideal for local CI werk executor parallel-jobs task-runner shell cli docker container
HEAD Latest release released

werk

Dead simple task runner. Now with support for Docker.

Build status

CI 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.

asciicast

Contributing

  1. Fork it (https://github.com/marghidanu/werk/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

werk:
  github: marghidanu/werk
  
License MIT
Crystal 1.1.1

Authors

  • tudor@marghidanu.com

Dependencies 4

  • admiral 1.11.5
    {'github' => 'jwaldrip/admiral.cr', 'version' => '1.11.5'}
  • docr
    {'github' => 'marghidanu/docr'}
  • dotenv
    {'github' => 'gdotdesign/cr-dotenv'}
  • tallboy 0.9.3
    {'github' => 'epoch/tallboy', 'version' => '0.9.3'}

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently