Skip to content
This repository has been archived by the owner on Jul 19, 2022. It is now read-only.
/ picasso Public archive

🎨 Picasso is a versatile task runner 🏃 and awesome build tool

License

Notifications You must be signed in to change notification settings

andersnormal/picasso

Repository files navigation

🎨 Picasso

Test & Build Go Report Card Taylor Swift Volkswagen License

Picasso is a versatile task runner 🏃 with a powerful plugin system.

👉 Documentation

⚠️ The task runner is under active development and the specification may change.

Features

  • Universal task runner 🛠️
  • Extensible via plugins 🥳
  • Template generation in task runs
  • Task watcher (allows to watch on file system changes and re-runs tasks)no

Install

Homebrew

brew install andersnormal/picasso/picasso

Example

spec: 1
version: 1.0.0
authors:
  - Sebastian Döll <sebastian@katallaxie.me>
homepage: https://github.com/andersnormal/picasso
repository: https://github.com/andersnormal/picasso
plugins:
  -
    id: picasso-plugin-init
    path: picasso-plugin-init
tasks:
  test:
    disabled: false
    desc: test
    vars:
      region: test
    env:
      REGION: test
    steps:
      - cmd: echo {{.OS}}
    watch:
      paths:
        - pkg/config
    template:
      - 
        file: ./examples/config.json.tpl
        out: ./config.json
        vars:
          foo: bar    

Plugins

Plugins are implemented using the go plugin over RPC package.

Plugins are triggered using the --plugin flag. They are executed with the vars set with the --var flag and the global vars property in the .picasso.yml file.

Example:

See plugin.go for an example.

Development

The goal is that Picasso is build and maintained by itself. However, up until this very moment. There two quick steps to build it.

The development is intended to be run with Codespaces the blazing fast cloud developer environment.

env GO111MODULE=on goreleaser release --snapshot --rm-dist

License

Apache 2.0