运行存储库代码

面向机器学习的 CI/CD

Ravi Bhadauria

Machine Learning Engineer

共享存储库模型

  • 多名协作者在同一存储库上工作
  • 为相关工作创建功能/主题分支
    • 打开 pull request
    • 代码评审并提出修改建议
    • 将分支合并到 main
  • 启用 CI/CD 检查以提升代码质量

多位开发者向同一存储库贡献代码的共享存储库模型示意图

面向机器学习的 CI/CD

创建功能分支

登录页,突出显示 Branch 选项卡

Branch 页面,突出显示新建分支选项卡

面向机器学习的 CI/CD

创建功能分支

存储库主页,显示已激活的功能分支

面向机器学习的 CI/CD

添加存储库代码

将其保存为分支中的 hello_world.py

import datetime

def main():
    print("Hello, World!")

    # Get the current time and print it
    current_time = datetime.datetime.now()
    print("Current time:", current_time)

if __name__ == "__main__":
    main()
面向机器学习的 CI/CD

配置工作流事件

  • 为 pull request 事件指定目标分支
on:
  pull_request:
    branches: [ "main" ]
面向机器学习的 CI/CD

Actions 语法

steps:
  - name: My Action 
    uses: <org_or_user_name>/<reponame>@<version_number>
    with:
      action-argument: value
面向机器学习的 CI/CD

配置工作流步骤与 actions

  • 在作业步骤中检出存储库
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • 设置 Python 环境
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
面向机器学习的 CI/CD

整合示例

  • 工作流在对 main 的 pull request 上触发
  • build 作业含三步
    • Checkout 检出存储库
    • Setup Python 配置 Python 环境
    • Run Python script 运行该 Python 文件
name: PR

on:
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.9
      - name: Run Python script
        run: |
          echo hello_world.py 
          python hello_world.py
面向机器学习的 CI/CD

创建 PR 并触发工作流

显示正在运行工作流的 pull request 页面截图

面向机器学习的 CI/CD

查看工作流日志

工作流日志页面,显示包含 Python 脚本在内的各步骤

面向机器学习的 CI/CD

让我们来练习!

面向机器学习的 CI/CD

Preparing Video For Download...