GitHub Actions 工作流生成器

下一个

一个未配置持续集成(CI)的新 GitHub 仓库,距离下一次部署失败只差一个 git push。该生成器会为 Node、PHP 或 Laravel 生成初始的 .github/workflows/ci.yml,把代码检出、正确的运行时 action、依赖安装以及标准测试命令连接起来,点亮绿色/红色状态点所需的一切都已齐备。

如何生成工作流

  1. 1

    选择技术栈

    Node(使用 `actions/setup-node`)、PHP(使用 `shivammathur/setup-php`)或 Laravel(PHP + `php artisan test`)。

  2. 2

    设置主分支

    `main` 为默认值;若您的仓库仍使用 `master` 或自定义名称,请覆盖该设置。

  3. 3

    生成

    该工具会生成一个 YAML 文件,其中包含该分支上的 `push` 和 `pull_request` 触发器。

  4. 4

    提交到 .github/workflows/

    在 `.github/workflows/ci.yml` 处创建文件并 push,下一次提交时 Actions 选项卡便会亮起。

工作流是什么样子

name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - run: composer install --no-interaction
      - run: php artisan test

由生成器固定的操作

Action 用途
actions/checkout@v4 将仓库克隆到 Runner 中
actions/setup-node@v4 安装 Node 工具链
shivammathur/setup-php@v2 安装带扩展的 PHP 版本

接下来可以添加什么

  • 在测试步骤之前加入 Lint 步骤npm run lint./vendor/bin/phpstan analyse)。
  • 矩阵构建:使用 strategy.matrix 在多个 Node/PHP 版本上运行。
  • 覆盖率上传:测试步骤之后运行 codecov-actioncoveralls-action
  • 密钥:切勿硬编码令牌,请使用 secrets.XXX 并在 Settings → Actions 中进行配置。

常见陷阱

  • 忘记获取标签:当发布逻辑需要读取标签时,请在 checkout 上加上 with: { fetch-depth: 0 }
  • 使用 latest Docker 镜像:固定版本号,以确保数月后的运行结果仍可复现。
  • 每次 push 都运行 30 分钟的测试套件:用 needs: 拆分耗时较长的任务以实现并行。

常见问题

放在仓库根目录下的 .github/workflows/ci.yml。GitHub 会识别该目录下的所有 YAML 文件,并在 Actions 标签页中将每个文件显示为独立的工作流。

从 fork 发起的拉取请求会执行工作流,但 GITHUB_TOKEN 会设置为只读模式。除非您明确授权,否则外部贡献者无法访问您的密钥。

setup-php步骤中添加strategy.matrix.php: [8.2, 8.3, 8.4]模块,并引用${{ matrix.php }}。运行器将并行为每个版本生成一个作业。

不。生成的 YAML 仅显示在页面上,不会上传或保存到任何地方,您只需自行复制即可。

相关工具

此工具还提供其他语言版本