GitHub Actions 入门:从零搭建你的第一个 CI 工作流
什么是 GitHub Actions
GitHub Actions 是 GitHub 内置的 CI/CD 持续集成与持续部署工具。简单说,就是当你在 GitHub 上 push 代码、创建 PR 或发布 Release 时,自动执行你定义的一系列任务——比如跑测试、构建项目、部署到服务器。
跟 Jenkins、GitLab CI 相比,GitHub Actions 的最大优势是跟仓库深度绑定,不需要额外搭建 CI 服务器,直接在仓库里写个 YAML 配置文件就能跑起来。
核心概念:3 分钟搞懂
- Workflow(工作流):一个自动化流程,定义在
.github/workflows/*.yml文件中 - Job(任务):Workflow 由多个 Job 组成,每个 Job 在不同 Runner 上运行
- Step(步骤):Job 里的每一步操作,比如 checkout 代码、安装依赖、运行测试
- Action(动作):可复用的步骤单元,可以从 GitHub Marketplace 下载社区写好的 Action
- Runner(运行器):执行 Workflow 的服务器,GitHub 提供免费的 Ubuntu/Windows/macOS Runner
实战:写一个最简单的 CI 工作流
假设你有一个 Node.js 项目,每次 push 代码时自动运行测试。在仓库根目录创建 .github/workflows/ci.yml:
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm ci
- run: npm test
这个配置做了几件事:
- on.push/pull_request:触发条件,main 分支有 push 或 PR 时自动运行
- runs-on: ubuntu-latest:用 GitHub 提供的 Ubuntu 服务器
- actions/checkout@v4:把代码拉到 Runner 上(官方 Action)
- actions/setup-node@v4:安装指定版本的 Node.js
- npm ci && npm test:安装依赖并跑测试
写好这个文件 push 上去,GitHub 会自动识别并执行。在仓库的 Actions 标签页能看到运行状态。
常用场景分享
自动部署到服务器
- name: Deploy to Server
uses: easingthemes/ssh-deploy@v4
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }}
REMOTE_HOST: ${{ secrets.HOST }}
TARGET: /var/www/app
把服务器连接信息存在仓库的 Secrets 里,每次 push 自动部署。再也不用手动 FTP 上传了。
自动发 Release
配合 actions/create-release,打 Tag 时自动生成 Release 页面和 changelog。很多开源项目都在用。
定时任务
on:
schedule:
- cron: "0 8 * * *"
每天早上 8 点自动运行,可以跑数据抓取、日报生成之类的任务。
记几个实用技巧
- 缓存依赖:用
actions/cache缓存 node_modules 或 pip,能省一半以上的安装时间 - 矩阵构建:一个 Job 同时在多个版本/环境上跑,
strategy.matrix很好用 - Artifact 上传:用
actions/upload-artifact保存构建产物,比如 APK、Docker 镜像 - 免费额度:GitHub 免费账户每月有 2000 分钟运行时间,个人项目完全够用
- 自建 Runner:如果你的项目需要 GPU 或特定硬件,可以自己注册 Runner,不占用免费额度
避坑指南
Secret 别写死:密码、Token 一定要存在仓库 Settings → Secrets and variables → Actions 里,用 ${{ secrets.XXX }} 引用。
YAML 缩进:GitHub Actions 对缩进敏感,tab 和空格混用会导致解析失败。建议统一用 2 空格缩进。
Workflow 超时:默认每个 Job 最长 6 小时,如果任务可能跑很久,可以显式设置 timeout-minutes: 60。
Debug 日志:在仓库 Secrets 里加 ACTIONS_STEP_DEBUG=true,日志里会输出详细的 debug 信息,排查问题很有用。
总结
GitHub Actions 是我用过最顺手的 CI/CD 工具之一。配置文件的写法有阅读友好的 YAML 格式、官方和社区提供了大量现成的 Action 可复用、跟 GitHub 生态无缝集成。如果你的项目放在 GitHub 上,强烈建议试试看——从简单的自动化测试开始,慢慢加入部署、发布、定时任务,一天比一天省心。
更多推荐


所有评论(0)