Spouštění kódu z repozitáře

CI/CD pro Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Model sdíleného repozitáře

  • Na stejném repozitáři spolupracuje více přispěvatelů
  • Pro související práci se vytvářejí větve funkcí/témat
    • Otevírají se pull requesty
    • Kód je přezkoumán a navrhují se změny
    • Kód větve se sloučí do větve main
  • Kontroly CI/CD zlepšují kvalitu kódu

Obrázek modelu sdíleného repozitáře, kde více vývojářů přispívá do jednoho repozitáře

CI/CD pro Machine Learning

Vytvoření větve funkce

Obrázek úvodní stránky repozitáře se zvýrazněnou záložkou větví

Obrázek stránky větví se zvýrazněnou záložkou pro novou větev

CI/CD pro Machine Learning

Vytvoření větve funkce

Obrázek úvodní stránky repozitáře zobrazující aktivní větev funkce

CI/CD pro Machine Learning

Přidání kódu do repozitáře

Uložte jako hello_world.py do větve

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

Konfigurace události workflowu

  • Určení cílové větve pro událost pull requestu
on:
  pull_request:
    branches: [ "main" ]
CI/CD pro Machine Learning

Syntaxe akcí

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

Konfigurace kroků a akcí workflowu

  • Checkout repozitáře v kroku jobu
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • Nastavení prostředí Pythonu
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
CI/CD pro Machine Learning

Vše dohromady

  • Workflow se spustí při pull requestu do větve main
  • Job build obsahuje tři kroky
    • Checkout provede checkout repozitáře
    • Setup Python nastaví prostředí Pythonu
    • Run Python script spustí soubor Pythonu
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 pro Machine Learning

Vytvoření PR a spuštění workflowu

Obrázek stránky pull requestu zobrazující spuštěný workflow

CI/CD pro Machine Learning

Prohlídka logů workflowu

Obrázek stránky s logy workflowu zobrazující krok spuštění skriptu Pythonu

CI/CD pro Machine Learning

Pojďme si procvičit!

CI/CD pro Machine Learning

Preparing Video For Download...