Executando código do repositório

CI/CD para Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Modelo de repositório compartilhado

  • Vários colaboradores trabalham no mesmo repositório
  • Branches de feature/tópico são criadas para trabalhos relacionados
    • Pull requests são abertos
    • Código é revisado e mudanças são sugeridas
    • Código da branch é mesclado na branch main
  • Checks de CI/CD melhoram a qualidade do código

Imagem do modelo de repositório compartilhado em que múltiplos desenvolvedores contribuem para um único repositório

CI/CD para Machine Learning

Criar uma feature branch

Imagem da página inicial destacando a aba de branches

Imagem da página de branches destacando a aba nova branch

CI/CD para Machine Learning

Criar uma feature branch

Imagem da página inicial do repositório exibindo a feature branch ativa

CI/CD para Machine Learning

Adicionar código ao repositório

Salvar como hello_world.py na 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 para Machine Learning

Configurar evento do workflow

  • Especifique a branch de destino para o evento de pull request
on:
  pull_request:
    branches: [ "main" ]
CI/CD para Machine Learning

Sintaxe de Actions

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

Configurar passos e actions do workflow

  • Fazer checkout do repositório em um passo do job
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • Configurar ambiente Python
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
CI/CD para Machine Learning

Juntando tudo

  • Workflow dispara em pull request para main
  • Job build tem três passos
    • Checkout faz checkout do repositório
    • Setup Python prepara o ambiente Python
    • Run Python script executa o arquivo 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 para Machine Learning

Criar PR e acionar o workflow

Imagem da página de pull request exibindo um workflow em execução

CI/CD para Machine Learning

Inspecionar logs do workflow

Imagem da página de logs do workflow exibindo o passo do script Python entre outros passos

CI/CD para Machine Learning

Vamos praticar!

CI/CD para Machine Learning

Preparing Video For Download...