GitHub Actions 是 GitHub 提供的一项持续集成和持续部署 (CI/CD) 服务,它允许你在代码仓库中自动化执行各种任务,比如构建、测试和部署。下面我将从 0 开始介绍如何配置一个 GitHub Actions 工作流。
什么是 GitHub Actions 工作流?
工作流是一组自动化的流程,定义了在 GitHub 仓库中触发特定事件时要执行的任务。这些事件可以是代码推送、拉取请求创建、发布新版本等。工作流由一个或多个作业组成,每个作业又包含多个步骤,这些步骤可以执行命令、运行脚本或使用预定义的操作。
从 0 开始配置 GitHub Actions 工作流
1. 前提条件
- 你需要有一个 GitHub 账号
- 你需要有一个 GitHub 仓库
- 了解基本的 YAML 语法(YAML 是一种用于配置文件的格式)
2. 创建工作流文件
GitHub Actions 工作流配置文件是 YAML 文件,通常存储在仓库的 .github/workflows/ 目录下。下面是一个简单的示例,创建一个名为 release.yml 的文件:
name: My Workflow # 工作流名称
# 触发条件
on:
push: # 当代码被推送时触发
branches: [ main, develop ] # 只在这些分支上触发
paths: # 只在这些文件变化时触发
- 'src/**'
- 'package.json'
pull_request: # 当有拉取请求时触发
branches: [ main ]
# 定时触发
schedule:
- cron: '0 0 * * *' # 每天午夜运行
# 作业定义
jobs:
build: # 作业 ID
name: Build Application # 作业名称
runs-on: ubuntu-latest # 运行环境
# 条件判断
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
# 环境变量
env:
NODE_VERSION: '16'
steps: # 步骤列表
- name: Checkout code # 步骤名称
uses: actions/checkout@v3 # 使用官方提供的检出代码操作
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
# 保存构建产物供其他作业使用
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: build-output
path: dist/
- name: Run a command # 另一个步骤
run: echo "Hello, world!" # 执行命令
test: # 另一个作业
needs: build # 依赖 build 作业完成
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
3. YAML 文件的作用
YAML 文件在 GitHub Actions 中扮演配置文件的角色,它定义了:
- 工作流的名称和触发条件
- 包含哪些作业及其运行环境
- 每个作业包含哪些步骤
- 每个步骤要执行的操作或命令
4. 工作流结构详解
- name: 工作流的名称,显示在 GitHub 仓库的 Actions 标签页中
- on: 定义触发工作流的事件,如 push、pull_request 等
- jobs: 包含一个或多个作业
- runs-on: 指定作业运行的环境(如 ubuntu-latest、windows-latest 等)
- steps: 作业中的步骤列表
- uses: 使用预定义的操作
- run: 执行命令行命令
- with: 为操作提供输入参数
- env: 设置环境变量
5. 提交并触发工作流
- 将
.github/workflows/release.yml文件添加到你的仓库 - 提交并推送到 GitHub
- 创建一个新的标签并推送(例如:
git tag v1.0.0 && git push origin v1.0.0) - 这将触发 release.yml 工作流
6. 查看工作流执行结果
- 转到你的 GitHub 仓库
- 点击 "Actions" 标签
- 选择相应的工作流运行记录
- 查看执行日志和结果
常见的工作流场景
-
CI (持续集成) : 每次推送代码时自动构建和测试
-
CD (持续部署) : 代码通过测试后自动部署到生产环境
-
发布管理: 创建新版本并自动打包发布
-
自动化测试: 运行单元测试、集成测试等
-
代码质量检查: 执行代码格式化、静态分析等
通过配置不同的 YAML 文件,你可以实现各种自动化任务,大大提高开发效率。希望这个入门指南能帮助你理解 GitHub Actions 工作流的基本概念和配置方法!