Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CI e automação de deploys em bibliotecas Python

CI e automação de deploys em bibliotecas Python

DevOps Extreme 2021

Camila Maia

August 13, 2021
Tweet

More Decks by Camila Maia

Other Decks in Programming

Transcript

  1. CI e automação de deploys em bibliotecas Python Para deixar

    qualquer DevOps orgulhoso ⭐ DevOps Extreme - Ago 2021 Camila Maia
  2. Quem sou eu? - Desenvolvedora Backend - 10+ anos xp

    👵 - Python 🐍 e Ruby 💎 - OpenSource e Comunidades ❤ - Organização de eventos: Pyjamas, EuroPython, Python Brasil….
  3. A biblioteca • Biblioteca Python • Gerenciamento de pacotes e

    dependências via Poetry • Distribuída via PyPI e TestPyPI • Código no GitHub
  4. Integração Contínua: • Testes unitários + Cobertura de Testes •

    Lint: checagem de formatação do código, tipagem estática e formatação de mensagens de commit • Testes de integração Automação de deploys: • Merge no branch main: deploy no TestPyPI • Nova release: deploy no PyPI O objetivo
  5. • Framework de código aberto • Command line interface (CLI)

    • Escrito em Python Objetivos: 1. Fornecer Live Documentation 2. Possibilitar a implementação de Testes de Integração
  6. Makefile test: @pytest --cov=./scanapi --cov-report=xml black: @poetry run black -l

    80 --check . --exclude=.venv flake8: @poetry run flake8 --ignore=E501,W501,E231,W503 mypy: @poetry run mypy scanapi gitlint: @poetry run gitlint --ignore-stdin check: black flake8 mypy gitlint
  7. timestamp = `date -u +'%Y%m%d%H%M%S'` change-version: @poetry version `poetry version

    -s | cut -f-3 -d.`.dev$(timestamp) Makefile + Setup das Chaves