LV010-工作流程语法
一、基本概念
1. 基本术语
GitHub Actions 有一些自己的术语。
(1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。
(2)job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
(3)step(步骤):每个 job 由多个 step 构成,一步步完成。
(4)action (动作):每个 step 可以依次执行一个或多个命令(action)。
(5)上下文:上下文是一种访问有关工作流运行、变量、运行器环境、作业和步骤的信息的方法。每个上下文都是一个包含属性的对象,这些属性可以是字符串或其他对象。
2. workflow 文件
GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的 .github/workflows 目录。workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为 .yml,比如 foo.yml。一个库可以有多个 workflow 文件。GitHub 只要发现 .github/workflows 目录里面有 .yml 文件,就会自动运行该文件。
3. 上下文
具体的上下文相关内容可以查看文档:访问工作流运行的上下文信息 - GitHub Docs - GitHub 文档。里面的 github 上下文、secrets 上下文 等,后面会经常用到。
二、工作流语法
GitHub Actions 工作流程语法 - GitHub 文档 - GitHub 文档
三、常用公共 actions
1. actions/checkout
jobs:
steps:
- uses: actions/checkout@v4checkout 仓库地址在这里:GitHub - actions/checkout: Action for checking out a repo。Checkout V4 是 GitHub Actions 中的一个核心动作,旨在简化工作流程中对仓库的检出操作。通过 Checkout V4,用户可以轻松地将仓库检出到 $GITHUB_WORKSPACE 中,从而使工作流程能够访问仓库内容。该动作支持多种配置选项,包括检出特定分支、标签或 SHA,以及配置 SSH 密钥和令牌等,极大地增强了工作流程的灵活性和安全性。
说简单点,就是,现在我们在 sumumm/linux-release 这个仓库中启动了 .github/workflows/release.yml 中的工作流,这个时候,通过 jobs..steps..uses 就可以将 sumumm/linux-release 这个仓库检出到现在正在运行的 ubuntu 系统中,检出之后,我们就可以使用 github.workspace 来表示当前仓库 sumumm/linux-release 的路径,然后通过以下方式访问其中的文件:
jobs:
build:
runs-on: ubuntu-20.04 # ubuntu-latest ubuntu的最新版本
steps:
- uses: actions/checkout@v4
- name: 拷贝存储库中的文件
run: |
cp -pvf /path/src_file /path/dst_file2. softprops/action-gh-release
jobs:
build:
runs-on: ubuntu-20.04 # ubuntu-latest ubuntu的最新版本
steps:
- name: 发布 readme.md 文件
id: new_release
uses: softprops/action-gh-release@v2.0.8
with:
token: xxx
name: release-latest
make_latest: true
files: |
readme.md
helloworld_demo.out这个 action 是在自动打 tag 的时候将文件发布,例如:

这个 action 的仓库在 GitHub - softprops/action-gh-release: 📦 GitHub Action for creating GitHub Releases。里面有对应的使用说明,这里就不再详细说了。
参考资料:
【1】GitHub Actions 入门教程 - 阮一峰的网络日志
【2】GitHub Actions 工作流程语法 - GitHub 文档 - GitHub 文档