GitHub Actions 简介

面向机器学习的 CI/CD

Ravi Bhadauria

Machine Learning Engineer

什么是 GitHub Actions?

  • GitHub Actions(GHA):用于自动化流水线的 CI/CD 平台
  • Pipeline(流水线):表示工作与数据流的步骤序列
面向机器学习的 CI/CD

什么是 GitHub Actions?

一条汽车装配线的图像:工人分布在不同工位,执行装配发动机、安装车轮、车身喷漆等具体任务。

面向机器学习的 CI/CD

什么是 GitHub Actions?

GitHub Actions 为软件项目创建一系列预定义的操作或步骤,如检出仓库、构建代码、运行测试或部署应用。

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
面向机器学习的 CI/CD

GHA 组件:Event(事件)

  • Event(事件):触发工作流运行的仓库活动
    • Push
    • Pull Request
    • 打开 issue
面向机器学习的 CI/CD

GHA 组件:Workflow(工作流)

  • Workflow(工作流):自动运行一个或多个作业的流程
    • 用 YAML 文件定义
    • 事件 自动触发
      • 也可手动运行
    • 位于仓库的 .github/workflows 目录
    • 可定义多个工作流
面向机器学习的 CI/CD

GHA 组件:Steps 与 Actions

  • Steps(步骤):最小工作单元
    • 按顺序执行,依赖上一步
    • 在同一台机器上运行,可共享数据
    • 工作单元示例
      • 编译应用、Shell 脚本
      • Action:GHA 特定应用
        • 如检出仓库、在 PR 上评论
面向机器学习的 CI/CD

GHA 组件:Jobs 与 Runners

  • Job(作业):由若干 步骤 组成
    • 各作业彼此独立
    • 可并行执行
    • 运行在称为 runner(运行器) 的计算机器上
面向机器学习的 CI/CD

一个简单的 GHA 工作流

仓库中一次 push 事件触发了工作流:单个作业在 Ubuntu Linux 运行器上运行。该作业含两个步骤:检出仓库与运行 Python 代码。

  • 事件:Push
  • 作业:在 Ubuntu runner 上运行,含两个 步骤
    • Action:Checkout Repo(检出仓库)
    • 运行 Python 代码
面向机器学习的 CI/CD

整合回顾

典型 GitHub Actions 工作流组件,展示作业并行与步骤串行执行。

面向机器学习的 CI/CD

Passons à la pratique !

面向机器学习的 CI/CD

Preparing Video For Download...