Rularea codului din repository

CI/CD pentru Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Modelul repository-ului partajat

  • Mai mulți colaboratori lucrează pe același repository
  • Se creează branch-uri de funcționalitate/subiect
    • Se deschid pull request-uri
    • Codul este revizuit și se sugerează modificări
    • Codul branch-ului este integrat în branch-ul main
  • Verificările CI/CD îmbunătățesc calitatea codului

Imagine a modelului de repository partajat în care mai mulți dezvoltatori contribuie la un singur repository

CI/CD pentru Machine Learning

Crearea unui branch de funcționalitate

Imagine a paginii principale evidențiind fila branch

Imagine a paginii branch evidențiind fila new branch

CI/CD pentru Machine Learning

Crearea unui branch de funcționalitate

Imagine a paginii principale a repository-ului afișând branch-ul de funcționalitate activ

CI/CD pentru Machine Learning

Adăugarea codului în repository

Salvați ca hello_world.py în branch

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

Configurarea evenimentului workflow

  • Specificați branch-ul țintă pentru evenimentul pull request
on:
  pull_request:
    branches: [ "main" ]
CI/CD pentru Machine Learning

Sintaxa acțiunilor

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

Configurarea pașilor și acțiunilor workflow

  • Checkout-ul repository-ului într-un pas al job-ului
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • Configurarea mediului Python
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
CI/CD pentru Machine Learning

Asamblarea elementelor

  • Workflow-ul se declanșează la pull request pe main
  • Job-ul build conține trei pași
    • Checkout preia codul din repository
    • Setup Python configurează mediul Python
    • Run Python script rulează fișierul 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 pentru Machine Learning

Crearea PR și declanșarea workflow-ului

Imagine a paginii pull request afișând un workflow în execuție

CI/CD pentru Machine Learning

Inspectarea jurnalelor workflow

Imagine a paginii de jurnale workflow afișând pasul scriptului Python printre ceilalți pași

CI/CD pentru Machine Learning

Să exersăm!

CI/CD pentru Machine Learning

Preparing Video For Download...