GitHub Actions 学习笔记
这篇文章记录了我学习 GitHub Actions 的过程和心得。
什么是 GitHub Actions?
GitHub Actions 是 GitHub 提供的持续集成和持续部署(CI/CD)平台,可以自动化构建、测试和部署流程。
核心概念
1. Workflow(工作流)
工作流是自动化流程的配置文件,保存在 .github/workflows/ 目录下。
name: CI
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: npm test2. Event(事件)
触发工作流的事件,常见的有:
push- 代码推送pull_request- Pull Requestschedule- 定时任务workflow_dispatch- 手动触发
3. Job(任务)
一个工作流可以包含多个 job,可以并行或串行执行。
4. Step(步骤)
每个 job 由多个 step 组成,每个 step 可以:
- 运行命令 (
run) - 使用 Action (
uses)
实战:自动部署到 Vercel
下面是我配置的自动部署 workflow:
name: Deploy to Vercel
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--prod'关键步骤
- Checkout 代码 - 获取仓库代码
- Setup Node.js - 配置 Node.js 环境
- Install dependencies - 安装依赖
- Build - 构建项目
- Deploy - 部署到 Vercel
Secrets 配置
在 GitHub 仓库的 Settings → Secrets 中配置:
VERCEL_TOKEN- Vercel 访问令牌VERCEL_ORG_ID- 组织 IDVERCEL_PROJECT_ID- 项目 ID
最佳实践
1. 使用缓存加速构建
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}2. 矩阵测试(多版本测试)
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}3. 条件执行
- name: Deploy to production
if: github.ref == 'refs/heads/main'
run: npm run deploy4. 失败通知
- name: Notify on failure
if: failure()
run: echo "Build failed!"常用 Actions
官方 Actions
actions/checkout- 检出代码actions/setup-node- 设置 Node.jsactions/cache- 缓存依赖actions/upload-artifact- 上传构建产物
社区 Actions
amondnet/vercel-action- 部署到 Vercelpeaceiris/actions-gh-pages- 部署到 GitHub Pagesdocker/build-push-action- 构建并推送 Docker 镜像
学习资源
总结
GitHub Actions 是一个强大的自动化工具,学习曲线不陡峭。通过实践,我成功实现了:
✅ 自动化测试 ✅ 自动化部署 ✅ 自动化发布
下一步计划学习更多高级特性,如自定义 Action、矩阵构建等。
发布于 2025/01/18 · 标签: #GitHub-Actions #CI/CD
© 2025 我的技术博客