Hawk
Dead simple rust CLI to ease workflows management inside monorepos.

Usage
Run hawk init to initialize an empty config file. With the --read-from-env flag hawk will try to
retrive your workspaces from pnpm-workspace.yaml or pacakge.json workspaces key.
You can also pass --json if you want to save the config file as json.
<workspace-name>
)
Example
Check out the example folder.
Below an example monorepo situation:
)
Why
Github actions don't yet support workflows inside subfolders, neither in your .github/workflows/ folder or project custom folders.
So I made hawk to solve this problem without using custom commands. It lets you copy workflows from custom paths and paste them with a prefix, handling most of the pain.
With 10 lines config you have a working monorepo setup.
Installation
Download the latest release and move in your $PATH
From source
make sure to have your rust environment ready, then:
- Clone the repo
- Run
cargo build -rormake build - Copy
target/release/hawkto your path or usesudo make install(it will copy the bin into/usr/local/bin) - Enjoy
Setup
To setup a new project just run hawk init. If you're in a node environment you can pass the --read-from-env flag to generate config based on the monorepo configuration.
Features
- File watching
- Cleanup
workflowsfolder from generated files. - Custom configuration
- Generate config from
pnpm-workspace.yamland yarnspackage.json:workspaces - Create an action to automate this process. (so the user can update a workflow, push and get the generated one updated automatically)