GitHub Actions

已完成

如果要使用 GitHub 自动执行工作流,请使用 GitHub Actions。

GitHub 主要用于托管代码项目。 在 GitHub 存储库中托管机器学习代码时,可以创建 GitHub Actions 来自动生成、测试和部署代码。

注意

若要将 GitHub Actions 与 Azure 机器学习管道配合使用,需要允许 GitHub 存储库通过安全连接访问 Azure 机器学习工作区

你将了解如何使用 GitHub Actions 运行 Azure 机器学习管道。

创建 GitHub 操作

管道层次结构的关系图。

  1. 定义将触发工作流的事件。
  2. 运行包含作业的工作流。
  3. 作业包含一个或多个步骤。
  4. 其中一个步骤即运行 Azure 机器学习管道。
  5. Azure 机器学习管道由脚本或 Azure 机器学习组件组成。

若要为 GitHub Actions 创建工作流,请定义要在 YAML 文件中运行的步骤。 在 YAML 文件中,将加入:

  • 事件:如何触发工作流。
  • 任务:要在 运行器上执行的一组步骤。 对于机器学习工作负载,可能会使用 Ubuntu Linux 虚拟机。
  • 步骤:要运行的脚本或作。 例如,用于启动 Azure 机器学习管道的一个 CLI 命令 (az ml job create)。

若要在每当更改推送到存储库时运行 Azure 机器学习管道,可以使用如下所示的 YAML 文件:

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest 
    steps:
    - name: check out repo
      uses: actions/checkout@v2
    - name: install az ml extension
      run: az extension add -n ml -y
    - name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
    - name: set current directory
      run: cd src
    - name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

示例工作流将:

  1. 检查存储库,使其在运行程序上可用。
  2. 安装适用于 CLI 的 Azure 机器学习扩展。
  3. 使用预定义的 AZURE_CREDENTIALS 登录 Azure。
  4. 导航到 src 文件夹,其中包含所有生产代码。
  5. 运行 Azure 机器学习管道。

使用 GitHub Actions 运行工作流

假设你创建了 YAML 文件来定义工作流。 将 YAML 文件存储在存储库的 .github/workflows/ 目录中。

若要查看工作流,请导航到存储库的 GitHub“Actions”选项卡。

GitHub Actions 概述的屏幕截图。

GitHub 将自动选取存储在 .github/workflows/ 目录中的任何工作流。

提示

如果将 workflow_dispatch: 添加到工作流 YAML 文件,则可以手动触发工作流以从“Actions”选项卡运行。

可以使用工作流 YAML 文件中指定的事件触发工作流。 在此示例中,推送到存储库将触发要运行的工作流。 每当进行更改并将提交推送到存储库(在 Visual Studio Code 本地或直接在 GitHub 中),工作流都将运行。

选择最新运行以进一步检查是否已成功执行所有步骤或检查收到的错误消息。

已成功执行的工作流的屏幕截图。

当工作流触发 Azure 机器学习管道时,还应查看在 Azure 机器学习工作区中的管道运行,因为 Azure 机器学习管道中仍可能发生错误。 任何错误消息都可以在 Azure 机器学习管道试验运行的输出文件夹中查看。