news 2026/3/24 20:26:55

5 分钟快速入门 Github Actions

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5 分钟快速入门 Github Actions

GitHub Actions 是 GitHub 官方提供的 CI/CD 解决方案,它内置于 GitHub 平台,用于自动化你的软件构建、测试和部署工作流。


🚀 快速入门 GitHub Actions:自动化你的开发流程

核心概念:理解 Actions 的基石

在开始编写配置文件之前,理解以下几个关键概念是掌握 GitHub Actions 的前提:

1. Workflow(工作流程)

这是 GitHub CI/CD 的最高级别组件。Workflow 是一个 YAML 格式的文件,用于定义完整的自动化流程。

  • 存储位置:必须位于项目根目录下的.github/workflows/文件夹内。
  • 触发机制:定义了什么事件(如pushpull_request、定时任务等)会触发这个流程运行。

2. Job(作业)

Job 是 Workflow 中定义的一组任务,它们可以在不同的 Runner 上并行执行。

  • 阶段划分:类似于 GitLab CI 的 Stage,但 Job 默认并行。如果需要按顺序执行,可以使用needs关键字。
  • 运行环境:使用runs-on关键字指定运行环境,如ubuntu-latestwindows-latest或自托管 Runner。

3. Step(步骤)

Step 是 Job 中最小的执行单元,定义了要执行的具体操作。一个 Job 由多个 Step 组成,按顺序执行。Step 可以是:

  • Action:使用已有的、预打包的操作(如actions/checkout@v4)。
  • Shell 命令:直接执行 Shell 脚本 (run: npm install)。

4. Action(操作)

Action 是 GitHub Actions 最大的特色。它是可复用、封装好的代码块,由社区或 GitHub 官方提供。

  • 复用性:让你无需从头编写脚本,即可完成检出代码、设置环境、上传产物等复杂任务。
  • 格式:使用uses: owner/repo@ref格式引用。

⚙️ 动手实践:编写你的第一个 Workflow

我们将创建一个简单的 Node.js 项目工作流,包含“安装依赖”和“运行测试”两个步骤。

1. 创建工作流文件

在你的 GitHub 仓库中,创建路径和文件:.github/workflows/ci.yml

2. 编写ci.yml内容

# .github/workflows/ci.yml# 1. Workflow 名称name:Node.js CI# 2. 触发机制:何时运行?on:push:branches:[main,develop]# 在 main 或 develop 分支有推送时触发pull_request:branches:[main]# 在向 main 分支发起 Pull Request 时触发# 3. 定义 Job (作业)jobs:build_and_test:# Job 的 IDname:Build and Test# 4. 运行环境:在哪台机器上运行?runs-on:ubuntu-latest# 使用 GitHub 托管的最新版 Ubuntu Runner# 5. 定义 Step (步骤)steps:# Step 1: 检出代码 (使用官方 Action)-name:Checkout Repositoryuses:actions/checkout@v4# 必须的步骤,将仓库代码下载到 Runner 上# Step 2: 设置 Node.js 环境 (使用官方 Action)-name:Set up Node.jsuses:actions/setup-node@v4with:node-version:'20'# 指定使用的 Node.js 版本cache:'npm'# 启用 npm 缓存,加快后续运行速度# Step 3: 安装依赖 (使用 Shell 命令)-name:Install Dependenciesrun:npm ci# 使用 npm ci 确保干净安装,适用于 CI/CD# Step 4: 运行测试 (使用 Shell 命令)-name:Run Unit Testsrun:npm test

3. 提交并查看结果

  1. 将上述ci.yml文件提交并推送到你的 GitHub 仓库。
  2. 进入你的 GitHub 仓库,点击顶部的Actions标签页。
  3. 你会看到一个名为Node.js CI的新 Workflow 正在运行。
  4. 点击进入,你可以看到Build and TestJob 及其所有 Step 的实时日志输出。

🚀 进阶配置:让 Actions 更强大

1. 部署 Job (使用needs排序)

如果你想在测试成功后,再执行部署 Job,你需要使用needs来定义 Job 的依赖关系:

jobs:# 1. 测试 Jobtest:name:Run Testsruns-on:ubuntu-lateststeps:# ... (检出代码, 设置环境, npm install, npm test 的步骤) ...# 2. 部署 Job:依赖测试 Job 成功deploy:name:Deploy to Productionruns-on:ubuntu-latestneeds:[test]# 明确指定:只有 test Job 成功后,才运行 deploy Jobenvironment:production# 关联到 GitHub 环境,用于审批和保护steps:# Step 1: 配置云服务凭证-name:Configure AWS Credentialsuses:aws-actions/configure-aws-credentials@v4with:aws-access-key-id:${{secrets.AWS_ACCESS_KEY_ID}}# 使用 Secrets 存储敏感信息aws-secret-access-key:${{secrets.AWS_SECRET_ACCESS_KEY}}aws-region:ap-southeast-1# Step 2: 执行部署命令-name:Deploy Applicationrun:|npm run build aws s3 sync ./build s3://my-prod-bucket --delete

🔑 安全提示:部署 Job 中使用的敏感信息(如 API 密钥、密码)绝对不应直接写在 YAML 文件中,而应存储在 GitHub 仓库的Settings > Secrets and variables > Actions中。

2. 矩阵构建(Strategy Matrix)

如果你需要针对多个操作系统、Node 版本或浏览器版本运行相同的测试,使用矩阵策略可以大大简化配置:

jobs:test:runs-on:${{matrix.os}}# 运行时依赖 matrix.os 的值strategy:matrix:node-version:[18,20,22]# 三个 Node 版本os:[ubuntu-latest,windows-latest]# 两个操作系统steps:# ...-name:Set up Node.js ${{matrix.node-version}}uses:actions/setup-node@v4with:node-version:${{matrix.node-version}}# ...# 这个 Job 将运行 3 x 2 = 6 次,每个组合运行一次。

总结与下一步

恭喜你,现在你已经掌握了 GitHub Actions 的核心概念和基础工作流。

概念作用配置文件中的关键字相当于 GitLab CI
Workflow自动化流程的定义文件name,onPipeline
Job一组任务的集合,默认并行jobs,runs-on,needsStage
Step最小执行单元name,uses,runJob / Script
Action可复用的代码块uses:(无直接对应,是 Actions 特色)

你的下一步:

  1. 在你的 GitHub 仓库中,创建.github/workflows/ci.yml文件。
  2. 尝试使用on: schedule:来定义一个定时运行的工作流,例如每天凌晨运行一次健康检查。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/21 10:31:47

C51_HC-SR04超声波模块

文章目录一、HC-SR04   1、电气参数   2、引脚二、HC-SR04工作原理   1、基本工作原理   2、超声波时序图   3、原理图三、代码实例   1、UT.h   2、UT.c   3、main.c   4、实例现象一、HC-SR04 HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功…

作者头像 李华
网站建设 2026/3/23 0:26:43

C51_AH3144霍尔传感器

文章目录一、霍尔传感器   1、霍尔传感器分类   2、AH3144:二、代码实例   1、查询方式(物体计数)   2、外部中 断方式(电机测速)   3、实例现象一、霍尔传感器 霍尔传感器是一种基于霍尔效应的磁敏传感器&a…

作者头像 李华
网站建设 2026/3/24 14:34:46

进程内存统计

参考链接 https://help.aliyun.com/zh/arms/application-monitoring/developer-reference/memory-metrics

作者头像 李华
网站建设 2026/3/23 3:09:22

电动汽车永磁同步电机的电磁设计与最优控制探索

永磁同步电机具有效率高、功率密度大、鲁棒性强以及调速范围广等优点,被广泛应用于家用电器、航空航天、轨道交通与电动汽车等领域,是当前电机领域研究和应用热点。 本文以电动汽车驱动用永磁同步电机电磁设计和最优控制为研究内容,对永磁同步…

作者头像 李华
网站建设 2026/3/21 13:24:59

如何快速配置glibc-all-in-one:完整安装与使用指南

如何快速配置glibc-all-in-one:完整安装与使用指南 【免费下载链接】glibc-all-in-one 🎁A convenient glibc binary and debug file downloader and source code auto builder 项目地址: https://gitcode.com/gh_mirrors/gl/glibc-all-in-one gl…

作者头像 李华