Github Actions 工作流入门

GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。

[GitHub Actions](GitHub Actions 快速入门 - GitHub 文档) 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。

你可以创建工作流,以便在推送更改到存储库时运行测试,或将合并的拉取请求部署到生产环境。

1.基本概念

首先我们来看看一些基本的概念。

  • Workflow (工作流):一套完整的自动化流程配置,定义了“什么时候”做“什么事”。它就是管家的“工作手册”。
  • Event (事件):触发工作流的特定行为,即“什么时候”。例如 push 代码、pull_request 合并等。
  • Job (任务):一个工作流由一个或多个任务组成。默认情况下,任务是并行执行的。你可以把它理解为工作手册中的一个“章节”。
  • Step (步骤):每个任务由多个步骤组成,它们会按顺序执行。这是“章节”里的具体“操作步骤”。
  • Action (动作):一个可复用的独立脚本,是构成步骤的核心。例如 actions/checkout 就是一个官方动作,专门用于检出代码。
  • Runner (运行器):执行工作流的服务器环境。GitHub 提供了免费的虚拟服务器(Ubuntu, Windows, macOS),你也可以使用自己的服务器。

简单来说我们可以使用 GitHub Actions 指定在什么时候、干什么事

例如我们都知道github是代码托管平台。而push代码仓库 其实就是一个什么时候,而这个时候我们就可以指定工作流来完成一些工作。

既然要做什么事,那就肯定要有一个工作的平台,也就是服务器

而这个工作流可以有多个工作,而一个工作又有多个步骤(比如某些指令 某些行动)

2.基本使用

1.创建文件

在 GitHub 上的存储库中,创建 .github/workflows 目录中名为 xxx.yml 的工作流文件,名字可以任意,文件后缀为yml或yaml

2.编写工作流文件

先来看个示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
name: CI-Web

on:
  push:
    branches:
      - main
    paths:
      - zx-picture-frontend/**

jobs:
  npm-build:
  	name: npm-build工作
    runs-on: ubuntu-latest
    steps:
      - name: 复制仓库代码到虚拟机服务器当中
        uses: actions/checkout@v4
      - name: 安装依赖
        run: npm install
      - name: 项目打包
        run: npm run build

这里来解释一个各个参数作用

  • name :为工作流取一个名字,便于查看。
  • on :指的是什么时候触发工作流 branches: 上传到什么分支时触发 paths:选定工作流的代码目录
  • jobs: 工作流
  • npm-build: 工作ID,可以自定义。
  • runs-on :这个工作在什么服务器上运行
  • steps :一个任务中按顺序执行的步骤列表。
  • name :给步骤命名 便于调试
  • run :相当于你亲自在服务器(虚拟机)的命令行里手动输入并执行一条命令

这里单独说说uses,因为实际上这个用的非常多。其作用就是调用一个预先打包好的 Action

uses 的语法解析

users 的值通常遵循 owner/repo@version 的格式。

  • owner/repo:托管这个 Action 代码的 GitHub 仓库。第一个是组织、第二个是仓库。
    • actions/checkout:表示这是由 actions 这个组织(GitHub 官方)开发的 checkout 仓库。
    • docker/login-action:表示这是由 docker 组织开发的 login-action 仓库。
  • @version:指定使用的 Action 版本。
    • 强烈建议使用具体的版本标签(如 @v4),而不是分支名(如 @main)。因为版本标签是稳定且不会改变的,而分支上的代码随时可能更新,这可能会导致你的工作流意外中断。

3.总结

GitHub Actions 是一个功能强大且灵活的自动化平台,是现代软件开发不可或缺的一环。

最后更新于 2025-09-19