#github-actions #workflow #manage #create #tool #cli-tool #template

bin+lib flowcrafter

创建和管理 GitHub Actions 的工作流程

3 个版本 (破坏性)

0.3.0 2023 年 12 月 21 日
0.2.0 2023 年 12 月 13 日
0.1.0 2023 年 6 月 1 日

配置 中排名 281

MIT/Apache

68KB
2K SLoC

🏗️ FlowCrafter

FlowCrafter 是一个命令行工具,用于创建和管理 GitHub Actions 的工作流程。

安装

可以使用 cargo 安装 FlowCrafter。运行以下命令将下载 FlowCrafter 的最新版本,编译它,并将其作为命令行工具提供。

cargo install flowcrafter

安装后,flowcrafter 作为终端中的一个命令可用

flowcrafter --help

用法

使用 FlowCrafter 包括三个不同的步骤

  1. 为工作流程和作业创建模板
  2. 在存储库中初始化 FlowCrafter
  3. 创建和更新工作流程

创建模板

FlowCrafter 使用存储在 GitHub 上的模板来创建工作流程和作业。这些是遵循一些约定的 YAML 文件

  • 存储库包含每个工作流程的文件夹(例如 rust)。
  • 每个工作流程文件夹包含一个名为 workflow.yml 的文件,该文件定义了工作流程(例如 rust/workflow.yml)。
  • 作业模板存储在工作流程文件相同的文件夹中(例如 rust/lint.yml)。

工作流程

工作流程模板设置了工作流程的最高级配置。它还可以包含始终应包含在工作流程中的作业列表。

工作流程模板始终命名为 workflow.yml

---
name: Rust

"on":
  push:
    branches:
      - main
  pull_request:

jobs:
  run-always:
    name: Always include this job
    runs-on: ubuntu-latest

    steps:
      - run: echo "This will always be included"

作业

作业在单个 YAML 文件中定义,位于工作流程文件夹内。每个都代表可以在工作流程中包含的单个作业。

style:
  name: Check style
  runs-on: ubuntu-latest

  steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Run Rustfmt
      run: cargo fmt --all -- --check

初始化 FlowCrafter

FlowCrafter 管理 GitHub 存储库中的工作流程。在将存储库克隆到本地计算机后,打开终端,更改到其目录,然后为 FlowCrafter 生成配置文件。

flowcrafter init -r <owner>/<repo>

这将创建一个名为 .flowcrafter.yml 的文件,位于 .github 目录中,并将仓库 owner/repo 配置为工作流程和作业模板的源。

创建工作流程

在FlowCrafter初始化并在GitHub上有模板后,现在您可以使用FlowCrafter创建工作流程

flowcrafter create -w <workflow> -j <job> -j <job>

例如,给定以下模板的仓库

rust
├── lint.yml
├── test.yml
└── workflow.yml

您可以使用以下命令创建Rust的工作流程

flowcrafter create -w rust -j lint -j test

这将创建文件 .github/workflows/rust.yml 并将 workflow.yml 和两个作业 lint.ymltest.yml 合并到其中。

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您提交给工作内容的任何有意贡献都应如上双重许可,无需任何额外的条款或条件。

依赖关系

~13–26MB
~412K SLoC