Frontend Academy · 课时

用于前端的 GitHub Actions:代码检查、测试与构建

编写工作流 YAML,安装依赖、运行 ESLint、执行 Jest 测试,并在每个拉取请求上构建应用。

第 1 / 4 课14 个步骤

用于前端的 GitHub Actions:代码检查、测试与构建 是 CoddyKit 上的免费 Frontend Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Frontend Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Frontend Academy 课程共包含 4 节课。

前端为什么需要 CI?

持续集成会在每次推送和拉取请求时运行测试、代码检查和构建。它能在回归问题进入主分支之前发现它们。任何拥有一名以上开发者的团队都应配置持续集成。

GitHub Actions 基础

工作流是位于 .github/workflows/ 中的 YAML 文件。每个工作流都包含作业,这些作业会由触发器(push、pull_request、schedule)启动。

# .github/workflows/ci.yml
name: CI
on:
  push:
    branches: [main]
  pull_request:
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npm test

缓存依赖项

缓存 node_modules(或 pnpm/yarn 缓存),避免每次运行都重新安装。setup-node 内置了缓存支持。

- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'   # or 'yarn' or 'pnpm'

代码检查作业

运行 ESLint 和 Prettier 检查。出现错误时让构建失败。

lint:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: '20', cache: 'npm' }
    - run: npm ci
    - run: npm run lint
    - run: npm run format:check

测试作业

运行 Vitest 或 Jest。输出覆盖率报告,以便了解测试覆盖情况。

test:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: '20', cache: 'npm' }
    - run: npm ci
    - run: npm test -- --coverage
    - uses: codecov/codecov-action@v4
      with:
        files: ./coverage/lcov.info

构建作业

构建生产环境包。将其上传为构建产物,供后续部署作业使用。

build:
  runs-on: ubuntu-latest
  needs: [lint, test]
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: '20', cache: 'npm' }
    - run: npm ci
    - run: npm run build
    - uses: actions/upload-artifact@v4
      with:
        name: dist
        path: dist/
        retention-days: 7

并行作业

代码检查、测试和类型检查可以并行运行,因为 Actions 会为每个作业使用独立的运行器。使用 needs: 强制规定顺序(让构建在代码检查和测试之后运行)。

类型检查

添加专用的类型检查作业:tsc --noEmit。在运行时之前发现 TypeScript 错误。

typecheck:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: '20', cache: 'npm' }
    - run: npm ci
    - run: npx tsc --noEmit

矩阵测试

在多个 Node 版本或操作系统上并行运行测试作业。

test:
  strategy:
    fail-fast: false
    matrix:
      node: [18, 20, 22]
      os: [ubuntu-latest, windows-latest, macos-latest]
  runs-on: ${{ matrix.os }}
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: ${{ matrix.node }} }
    - run: npm ci && npm test

条件步骤

使用 if: 仅在满足条件时运行步骤,例如仅在主分支上运行。

- name: Deploy to staging
  if: github.ref == 'refs/heads/main'
  run: npm run deploy:staging

密钥与变量

将 API 密钥和令牌存储在仓库密钥中(Settings → Secrets)。通过 secrets.NAME 访问。绝不要将密钥提交到仓库。

- run: npm run deploy
  env:
    DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}

分支保护规则

在 Settings → Branches 中,要求 CI 工作流通过后,才允许合并到 main。再结合必需的代码审查,这就是团队的标准安全措施。

快速检查

GitHub Actions 工作流并发区块中的 cancel-in-progress: true 有什么作用?

回顾:面向前端的 GitHub Actions

工作流 YAML 文件位于 .github/workflows/。推送或 PR 时运行作业。通过 setup-node 缓存 node_modules。标准作业包括:代码检查、类型检查、测试、构建。使用 needs 实现并行运行和顺序控制。使用矩阵进行多版本测试。通过仓库设置管理密钥。分支保护要求 CI 通过后才能合并。使用 cancel-in-progress 去重运行。

免费开始

用 AI 导师学习 HTML — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
41
课程
163

常见问题解答

「用于前端的 GitHub Actions:代码检查、测试与构建」课时是免费的吗?

是的 — 「用于前端的 GitHub Actions:代码检查、测试与构建」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Frontend Academy 课程的其余内容,请升级到 CoddyKit PRO。 Frontend Academy 课程共包含 4 节课。

「用于前端的 GitHub Actions:代码检查、测试与构建」这节课中我会学到什么?

编写工作流 YAML,安装依赖、运行 ESLint、执行 Jest 测试,并在每个拉取请求上构建应用。 你通过在浏览器中直接运行的动手代码来练习 Frontend Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Frontend Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Frontend Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「用于前端的 GitHub Actions:代码检查、测试与构建」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Frontend Academy 课中编写并运行代码吗?

能。每节 Frontend Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 用于前端的 GitHub Actions:代码检查、测试与构建
  2. 部署到 Vercel、Netlify 与 Cloudflare Pages
  3. 持续集成中的环境变量
  4. 自动化 Lighthouse 检查
← 返回 Frontend Academy