跳到主内容
UniKit

GitHub Actions

生成 CI/CD 工作流配置:勾选触发条件(push / PR / tag / 定时 / 手动)、Node、Python、Go 或 Java 环境、依赖缓存与多版本多系统矩阵,直接得到可提交的 .github/workflows/*.yml。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

工作流设置

触发条件
运行环境
包管理器
运行系统(多选会生成矩阵)
任务步骤
缓存依赖给 setup 步骤加 cache 参数,Node 项目缓存包管理器目录

.github/workflows/ci.yml

把内容保存为 .github/workflows/ci.yml 即可运行;YAML 由 js-yaml 生成,可直接被 GitHub 解析。

name: CI
'on':
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: npm
      - name: Install dependencies
        run: npm ci
      - name: Lint
        run: npm run lint
      - name: Test
        run: npm test
      - name: Build
        run: npm run build

统计

步骤数6
矩阵机器数1
触发器数量2
输出行数0

这个工具能做什么

  • 给一个新项目补 CI:勾上 push 与 pull_request,选 Node 20,勾 lint / test / build,直接得到能提交的 ci.yml,不用再翻官方文档抄语法。
  • 多版本兼容性验证:版本填 18, 20, 22,系统同时选 ubuntu 和 windows,生成矩阵构建,一次跑完所有组合。
  • 定时任务或手动发布:加 schedule 触发(如每周一 3:00)或 workflow_dispatch,用来跑夜间构建、定时抓取或手动发布制品。
  • 从 npm 换成 pnpm 或 yarn:改包管理器后 install 步骤与缓存参数会跟着变,不用手改 setup-node 的 cache 值。

示例

输入

工作流名称 CI;触发条件 push + pull_request,分支 main;环境 Node、版本 20;步骤 checkout + install + test;开启缓存

输出

name: CI
'on':
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: npm
      - name: Install dependencies
        run: npm ci
      - name: Test
        run: npm test

YAML 由 js-yaml 序列化,`on` 会自动加引号,避免被 YAML 1.1 解析器当成布尔值 true。

常见问题

生成的 yml 放在哪里?

放到仓库的 .github/workflows/ 目录下,文件名随意,例如 ci.yml。GitHub 只读取该目录下的 YAML 文件,提交后下一次触发条件命中就会执行。

为什么版本填多个就变成矩阵了?

版本或运行系统超过一个时,工具会把它们写成 strategy.matrix,并把 setup 步骤的版本参数改成 ${{ matrix.node-version }}、运行器改成 ${{ matrix.os }}。矩阵最多展开 12 台机器,超过会提示,避免一个工作流开出上百个 job。

缓存是怎么开启的?

开启缓存会给 setup-node / setup-python / setup-go / setup-java 加上 cache 参数(Node 用你选的包管理器,Python 用 pip,Java 用 maven)。缓存只影响安装依赖的速度,不影响构建结果。

定时触发的 cron 怎么写?

用 5 个字段:分 时 日 月 周,例如 0 3 * * 1 表示每周一 UTC 3:00。注意 GitHub 用的是 UTC 时间,且最短间隔 5 分钟,写错字段数会直接提示错误。

tag 触发会匹配哪些标签?

勾选 tag 后生成 push.tags: [v*],也就是匹配 v1.0.0 这类以 v 开头的标签。如果同时勾了 push,两者会合并进同一个 push 触发器(branches + tags 并存),这是 GitHub Actions 的语法要求。

关键词:github actionsci cdworkflow ymlpipelinebuild matrixgithub 工作流持续集成持续部署自动化构建矩阵构建

同类工具