[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.编写工作流文件
先来看个示例
|
|
这里来解释一个各个参数作用
- 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 是一个功能强大且灵活的自动化平台,是现代软件开发不可或缺的一环。