Introdução ao GitHub Actions

CI/CD para Machine Learning

Ravi Bhadauria

Machine Learning Engineer

O que é GitHub Actions?

  • GitHub Actions (GHA): plataforma de CI/CD para automatizar pipelines
  • Pipeline: sequência de etapas que representam o fluxo de trabalho e de dados
CI/CD para Machine Learning

O que é GitHub Actions?

Imagem de uma linha de montagem de carros com pessoas em diferentes estágios, realizando tarefas como colocar o motor, instalar as rodas e pintar a lataria.

CI/CD para Machine Learning

O que é GitHub Actions?

GitHub Actions cria uma série de ações ou etapas definidas para seu projeto de software, como fazer checkout do repositório, compilar o código, executar testes ou fazer o deploy da aplicação.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD para Machine Learning

Componentes do GHA: Event

  • Event: atividade específica no repositório que dispara a execução de um workflow
    • Push
    • Pull Request
    • Abrir uma issue
CI/CD para Machine Learning

Componentes do GHA: Workflow

  • Workflow: processo automatizado que executa um ou mais jobs
    • Definido em arquivos YAML
    • Disparado automaticamente por um event
      • Execução manual é possível
    • Fica no diretório .github/workflows do repositório
    • Vários workflows podem ser definidos
CI/CD para Machine Learning

Componentes do GHA: Steps e Actions

  • Steps: unidades individuais de trabalho
    • Executadas em ordem, dependem da anterior
    • Roda na mesma máquina, então dados podem ser compartilhados
    • Exemplos de unidade de trabalho
      • Aplicativo compilado, script de shell
      • Action: aplicativo específico da plataforma GHA
        • Ex.: checkout do repo, comentar no PR
CI/CD para Machine Learning

Componentes do GHA: Jobs e Runners

  • Job: conjunto de steps
    • Cada job é independente
    • Execução em paralelo é possível
    • Executado na máquina de computação chamada runners
CI/CD para Machine Learning

Um workflow simples de GHA

Imagem de um evento de push em um repositório que disparou um workflow onde um único job roda em um runner Ubuntu Linux. O job contém duas etapas: fazer checkout do repo e executar código Python.

  • Event: Push
  • Job: roda no runner do Ubuntu, com dois steps
    • Action: Checkout do Repo
    • Executar código Python
CI/CD para Machine Learning

Juntando tudo

Imagem de um workflow típico do GitHub Actions destacando jobs em paralelo e steps sequenciais.

CI/CD para Machine Learning

Vamos praticar!

CI/CD para Machine Learning

Preparing Video For Download...