切换主题
GitHub Actions 入门指南
字数
588 字
阅读时间
3 分钟
什么是 GitHub Actions?
GitHub Actions 是 GitHub 提供的持续集成/持续部署(CI/CD)服务,它可以帮助你自动化软件开发工作流程。通过 GitHub Actions,你可以自动构建、测试和部署你的代码。
基本概念
- 工作流(Workflow):自动化流程的配置文件
- 事件(Event):触发工作流的具体动作,如 push、pull request 等
- 作业(Job):工作流中的一系列步骤
- 步骤(Step):作业中的具体任务
- 动作(Action):可重用的工作单元
创建第一个工作流
在你的仓库中创建 .github/workflows
目录,然后创建一个 YAML 文件,例如 main.yml
:
yaml:.github/workflows/main.yml
name: 第一个工作流
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: 设置 Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: 安装依赖
run: npm install
- name: 运行测试
run: npm test
工作流文件说明
- name: 工作流的名称
- on: 触发工作流的事件
- jobs: 要执行的作业
- runs-on: 运行环境
- steps: 具体执行步骤
常用的 GitHub Actions
- checkout: 检出代码
yaml
- uses: actions/checkout@v2
- 设置开发环境:
yaml
- uses: actions/setup-node@v2
with:
node-version: '14'
- 缓存依赖:
yaml
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
环境变量和密钥
在 GitHub 仓库的 Settings > Secrets and variables > Actions 中可以设置密钥:
yaml
jobs:
deploy:
steps:
- name: 使用密钥
env:
API_KEY: ${{ secrets.API_KEY }}
run: echo "使用 API 密钥进行部署"
常见使用场景
- 自动化测试:
yaml
- name: 运行测试
run: |
npm install
npm test
- 自动部署:
yaml
- name: 部署到生产环境
if: github.ref == 'refs/heads/main'
run: |
npm run build
npm run deploy
- 代码检查:
yaml
- name: 运行 ESLint
run: |
npm install
npm run lint
最佳实践
- 使用具体的版本号而不是
latest
- 设置超时时间避免作业运行时间过长
- 善用缓存加快构建速度
- 使用矩阵构建测试多个环境
- 合理使用
if
条件控制步骤执行
调试技巧
- 使用
actions/debug-action@v2
进行调试 - 查看工作流运行日志
- 本地测试工作流(使用
act
工具)