Ref
- features
- workflow-syntax
- expressions
- environment-variables
- contexts
Note
基本概念
事件 | Events
特定活动,很好理解。作业 | Jobs
job 是 workflow 中的一组步骤。jobs 按顺序执行(时间上有先后),且可能存在依赖关系(默认无,即逻辑上并列;但可以有,即逻辑上有先后)。同时,他们在同一个运行器上执行,因此在前的 jobs 对在后的 jobs 是可见的。官方给出的一个例子是:你可以用在后的 job 调用一个在在前的 job 生成的应用程序。操作 | Actions
操作是 GitHub Actions 平台的自定义应用程序,用于执行复杂但经常重复的任务。 使用操作可帮助减少在工作流程文件中编写的重复代码量。 操作可以从 GitHub 拉取 git 存储库,为您的构建环境设置正确的工具链,或设置对云提供商的身份验证。 您可以编写自己的操作,也可以在 GitHub Marketplace 中找到要在工作流程中使用的操作。 ——官方说明
运行器 | Runner
GitHub 提供 Ubuntu Linux、Microsoft Windows 和 macOS 运行器来运行您的工作流程;每个工作流程运行都在新预配的全新虚拟机中执行。 如果您需要不同的操作系统或需要特定的硬件配置,则可以托管自己的运行器。 有关 自托管运行器 的更多信息,请参阅“托管您自己的运行器”。 ——官方说明
创建工作流
- 在项目中创建
.github/workflows/
目录以存储工作流程文件; - 在
.github/workflows/
下创建xxx.yml
文件,Github 会自动运行该文件夹下的所有yml
文件; - 按照需求填充
yml
文件,详情见后; - 提交 & 推送;
工作流文件解析
| 详细解释 | | | —- | —- | |name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
name: learn-github-actions
| 【可选】将出现在 GitHub 仓库的 Actions(操作)选项卡中的工作流程名称。
此处为learn-github-actions
。 | |on: [push]
| 指定触发器,即指定出现某种事件时运行该工作流。不使用方括号为指定单一事件,使用方括号数组指定多个事件。触发关系为 或 。
此处为当有人push
时执行。
进阶 | |jobs:
| 该工作流中的所有作业。 | |check-bats-version:
| 定义一个作业,没有特别的关键词,格式为作业名:
。
此处表示下面为名为check-bats-version
的作业。 | |runs-on: ubuntu-latest
| 指定运行器的环境。
此处为Ubuntu Linux
的最新版本。 | |steps:
| 当前作业中的所有步骤,下面出现的每一项为一个单独的 Shell 脚本或一个 action | |- uses: actions/setup-node@v3
with:
node-version: '14'
| 调用 action 并附带一些参数。
此处为使用actions/setup-node@v3
操作来安装指定版本的Node.js
(此示例使用v14
)并将 node 和 npm 命令放在 PATH中。 | |- run: npm install -g bats
| 在运行器上执行特定命令。
此处为使用npm
来安装bats
软件测试包。 |
详细的语法条目和进阶语法请参考: