Chạy mã trong repository

CI/CD cho Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Mô hình repository dùng chung

  • Nhiều cộng tác viên làm việc trên cùng một repository
  • Tạo nhánh Tính năng/Chủ đề cho công việc liên quan
    • Mở pull request
    • Rà soát mã và đề xuất chỉnh sửa
    • Hợp nhất mã nhánh vào main
  • Kiểm tra CI/CD giúp nâng cao chất lượng mã

Ảnh mô hình repository dùng chung, nơi nhiều developer đóng góp vào một repository

CI/CD cho Machine Learning

Tạo nhánh tính năng

Ảnh trang chính, tô đậm tab nhánh (branch)

Ảnh trang nhánh, tô đậm tab tạo nhánh mới

CI/CD cho Machine Learning

Tạo nhánh tính năng

Ảnh trang repository hiển thị nhánh tính năng đang hoạt động

CI/CD cho Machine Learning

Thêm mã vào repository

Lưu dưới tên hello_world.py trong nhánh

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 cho Machine Learning

Cấu hình sự kiện workflow

  • Chỉ định nhánh mục tiêu cho sự kiện pull request
on:
  pull_request:
    branches: [ "main" ]
CI/CD cho Machine Learning

Cú pháp Actions

steps:
  - name: My Action 
    uses: <org_or_user_name>/<reponame>@<version_number>
    with:
      action-argument: value
CI/CD cho Machine Learning

Cấu hình bước và action của workflow

  • Checkout repository trong bước job
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • Thiết lập môi trường Python
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
CI/CD cho Machine Learning

Ghép các phần lại

  • Workflow kích hoạt khi có pull request vào main
  • Job build có ba bước
    • Checkout lấy mã repository
    • Setup Python thiết lập môi trường Python
    • Run Python script chạy file 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 cho Machine Learning

Tạo PR và kích hoạt workflow

Ảnh trang pull request hiển thị workflow đang chạy

CI/CD cho Machine Learning

Xem log workflow

Ảnh trang log của workflow hiển thị bước chạy script Python cùng các bước khác

CI/CD cho Machine Learning

Ayo berlatih!

CI/CD cho Machine Learning

Preparing Video For Download...