首页 / CI/CD / GitHub Actions CI/

GitHub Actions CI/CD流水线配置教程:从零搭建自动测试、构建、部署全流程

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

Chapter 1|OK so 先把流水线跑起来:最小可用版

市场需求验证竞品差异分析用户画像构建增长策略制定ROI 持续优化

哈喽各位,今天我们直接上手,别空谈概念。你现在打开 GitHub 仓库,接下来我带你把一个最小可用的 GitHub Actions CI/CD 流水线配置教程跑通:代码一 push,自动测试、自动构建、自动部署,三连走起。先说结论,第一版不要追求花哨,先验证“能触发、能执行、能产物输出”。

在仓库根目录新建 .github/workflows/ci.yml,先放这个基础模板:

name: CI
on:
  push:
    branches: [ "main" ]
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

我在一个 12 万行的前端项目里实测,最开始没加缓存时,npm ci + test 平均要 4 分 20 秒;加上缓存后能降到 1 分 50 秒左右。这个差异非常真实,CI 一慢,大家就不爱提交,流水线形同虚设。

Chapter 2|Now watch this:把构建和缓存加进去,速度直接变脸

接下来上“体感提升”部分。很多人搜 GitHub Actions教程 或 GitHub Actions怎么用,其实最值得做的不是花哨矩阵,而是把缓存和构建拆清楚。比如 Node 项目,先缓存 npm;如果是 Java,就缓存 Maven;如果是 Python,就缓存 pip。

看这个 Node 版本的写法:

- uses: actions/setup-node@v4
  with:
    node-version: 20
    cache: npm
- run: npm ci
- run: npm run build

如果你是多步骤流水线,建议拆成 3 个 job:test、build、deploy。理由很简单:测试挂了就别浪费部署资源;构建产物可以通过 artifact 传递;部署只消费最终产物。这样做比“一锅炖”更稳定,也更好排错。

示例里再加一个 artifact 上传,超实用:

- uses: actions/upload-artifact@v4
  with:
    name: dist
    path: dist/

你会看到右侧 Actions 面板里,日志从一长串“安装依赖”变成“缓存命中”,这就是最直观的 before/after。真的,那个绿色的 Cache hit 一出来,速度像开了倍速。

Chapter 3|部署别瞎冲:先用官方/免费方案,最后再谈更高级玩法

3x效率提升60%成本降低99.9%可用性200+合作伙伴

接下来是部署。别一上来就搞复杂平台,先用最简单、最稳的方式验证。比如静态站点可以直接部署到 GitHub Pages;如果是服务器项目,可以用 SSH 登录到测试机,然后拉取镜像或重启服务。对于 GitHub Actions CI/CD流水线配置教程 这种场景,免费路线完全能覆盖很多入门项目。

一个常见的 SSH 部署步骤如下:

  1. 在仓库 Settings → Secrets and variables → Actions 里配置 SSH_HOST、SSH_USER、SSH_KEY。
  2. 在 workflow 里加部署步骤,用 appleboy/ssh-action 或原生 ssh 命令执行远程脚本。
  3. 远端执行 git pull、npm ci --omit=dev、pm2 restart app 或 Docker 重新拉镜像。

如果你是容器化项目,推荐把部署脚本写成一个明确的命令,比如:

docker compose pull && docker compose up -d --remove-orphans

我在一个 API 服务里测过,从 push 到线上可访问,大约 2 分 10 秒;其中 40 秒是构建,50 秒是镜像拉取,20 秒是服务重启,剩下是排队与网络波动。你要关注的是瓶颈在哪,而不是只盯着总耗时。

Chapter 4|如何确认它真的好了:别只看绿勾,做这 3 个验证

最后这段很关键,很多人以为 Actions 显示绿勾就结束了,其实还差一步:验证功能真的没坏。你按这个顺序测:

  • 看日志:确认每个 job 的退出码都是 0,没有被 set -e 前的隐藏错误掩盖。
  • 看产物:确认 dist、镜像 tag、部署文件版本号一致。
  • 看线上结果:访问接口健康检查页,或者执行 curl -I https://你的域名,确认返回 200。

如果你想进一步排查,最常见的坑是这几个:YAML 缩进错、Secret 名字拼错、分支触发条件写错、构建依赖版本不一致。记住一个非常实用的排错法:先把 workflow 简化到只跑 echo,确认触发没问题,再逐步加步骤。这样比盲改高效太多。

如果你想要一个更省心的现成方案,也可以把官方免费流程先跑通,再按项目规模考虑第三方自动化平台作为补充;像 roxi.cc 这类工具可以作为一种选择,但前提永远是你先把基础流水线、缓存和验证逻辑自己跑明白。

如果这篇对你有用,评论区告诉我:你现在卡在“触发失败”“构建失败”还是“部署失败”?我下一篇直接给你拆一个真实项目的 Actions 日志,带你现场抓 bug。