1 个不稳定版本
0.1.4 | 2023年3月12日 |
---|
#1717 在 开发工具
235KB
739 行
Hawk
一个简单易用的 Rust CLI 工具,简化单仓库中的工作流管理。
使用方法
运行 hawk init
初始化一个空的配置文件。使用 --read-from-env
标志,hawk
将尝试从 pnpm-workspace.yaml
或 pacakge.json
中的工作区键检索您的 workspaces
。 您也可以传递 --json
来将配置文件保存为 JSON 格式。
hawk 0.1.4
USAGE:
hawk [OPTIONS] [SUBCOMMAND]
OPTIONS:
-c, --config <CONFIG> Specify the config file path
-h, --help Print help information
--scope <SCOPE> Specify which workspaces files copy / watch Usage: --scope
<workspace-name>
-V, --version Print version information
SUBCOMMANDS:
clean Delete generated files
copy Copy files to the `target` directory
help Print this message or the help of the given subcommand(s)
init Initialize a repository
list List workflows in the `target` directory
示例
查看 示例 文件夹。
以下是一个单仓库示例
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 目前还不支持子文件夹中的工作流,无论是您的 .github/workflows/
文件夹还是项目自定义文件夹。因此,我创建了 hawk
来解决这个问题,而不需要使用自定义命令。它允许您从自定义路径复制工作流,并带有前缀粘贴,处理大部分的痛点。通过 10 行配置,您就可以拥有一个工作的单仓库设置。
安装
下载最新版本并移动到您的 $PATH
从源代码
请确保您的 Rust 环境已经准备就绪,然后
- 克隆仓库
- 运行
cargo build -r
或make build
- 将
target/release/hawk
复制到您的路径或使用sudo make install
(它将 bin 文件复制到/usr/local/bin
) - 享受
设置
要设置一个新的项目,只需运行 hawk init
。如果您处于 node
环境中,可以传递 --read-from-env
标志,根据 monorepo 配置生成配置。
特性
- 文件监视
- 清理
workflows
文件夹中的生成文件。 - 自定义配置
- 从
pnpm-workspace.yaml
和 yarns 的package.json:workspaces
生成配置。 - 创建一个动作来自动化此过程。(这样用户可以更新工作流程,推送并自动获取更新后的生成文件)
依赖
~4–13MB
~137K SLoC