- Notifications
You must be signed in to change notification settings - Fork1
Dead simple rust CLI to ease workflows management inside monorepos.
rawnly/hawk
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Dead simple rust CLI to ease workflows management inside monorepos.
You can installhawk
via cargo (homebrew coming soon) or by downloading thelatest binary
cargo install hawk-cli
Runhawk init
to initialize an empty config file. With the--read-from-env
flaghawk
will try toretrive yourworkspaces
frompnpm-workspace.yaml
orpacakge.json
workspaces key.You can also pass--json
if you want to save the config file as json.
hawk 0.1.4USAGE: hawk [OPTIONS] [SUBCOMMAND]OPTIONS: -c, --config<CONFIG> Specify the config file path -h, --help Printhelp information --scope<SCOPE> Specify which workspaces files copy / watch Usage: --scope<workspace-name> -V, --version Print version informationSUBCOMMANDS: clean Delete generated files copy Copy files to the`target` directoryhelp Print this message or thehelp of the given subcommand(s) init Initialize a repository list List workflowsin the`target` directory
Check out theexample folder.
Below an example monorepo situation:
example├── hawk-config.yaml├── .github│ └── workflows│ ├── my-second-app--deploy.yml# name generated by folder│ └── the-app--deploy.yml# name is read from package.json└── packages ├── my-app │ ├── .DS_Store │ ├── package.json // reads workspace name from package.json (the-app) │ └── .github/workflows │ └── deploy.yml └── my-second-app └── .github/workflows └── deploy.yml
$cd example $ hawk --watch ...let the magic happen
Github actions don't yet support workflows inside subfolders, neither in your.github/workflows/
folder or project custom folders.So I madehawk
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.
Download thelatest release and move in your$PATH
make sure to have your rust environment ready, then:
- Clone the repo
- Run
cargo build -r
ormake build
- Copy
target/release/hawk
to your path or usesudo make install
(it will copy the bin into/usr/local/bin
) - Enjoy
To setup a new project just runhawk init
. If you're in anode
environment you can pass the--read-from-env
flag to generate config based on the monorepo configuration.
-uses:rawnly/hawk@mainwith:config:hawk-config.yaml
- File watching
- Cleanup
workflows
folder from generated files. - Custom configuration
- Generate config from
pnpm-workspace.yaml
and 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)
About
Dead simple rust CLI to ease workflows management inside monorepos.
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.