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 运行器来运行您的工作流程;每个工作流程运行都在新预配的全新虚拟机中执行。 如果您需要不同的操作系统或需要特定的硬件配置,则可以托管自己的运行器。 有关 自托管运行器 的更多信息,请参阅“托管您自己的运行器”。 ——官方说明

创建工作流

  1. 在项目中创建.github/workflows/目录以存储工作流程文件;
  2. .github/workflows/下创建xxx.yml文件,Github 会自动运行该文件夹下的所有yml文件;
  3. 按照需求填充yml文件,详情见后;
  4. 提交 & 推送;

    工作流文件解析

    1. name: learn-github-actions
    2. on: [push]
    3. jobs:
    4. check-bats-version:
    5. runs-on: ubuntu-latest
    6. steps:
    7. - uses: actions/checkout@v3
    8. - uses: actions/setup-node@v3
    9. with:
    10. node-version: '14'
    11. - run: npm install -g bats
    12. - 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软件测试包。 |

详细的语法条目和进阶语法请参考: