Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CI e automação de deploys em bibliotecas Python
Search
Camila Maia
August 13, 2021
Programming
0
190
CI e automação de deploys em bibliotecas Python
DevOps Extreme 2021
Camila Maia
August 13, 2021
Tweet
Share
More Decks by Camila Maia
See All by Camila Maia
Cumbuca Dev: Ensinando com Open Source - 71º Python Floripa no MeLi
camilamaia
0
29
COMO E PORQUE ENSINAR A PROGRAMAR COM OPEN SOURCE - Python Brasil 2023
camilamaia
0
28
Como testar e manter APIs de qualidade - Codecon Digital 2023
camilamaia
0
240
factory_boy: testing like a pro. DjangoCon US 2022
camilamaia
0
240
ScanAPI Workshop. DjangoCon EU 2022
camilamaia
0
180
factory_boy: testing like a pro. DjangoCon EU 2022
camilamaia
1
250
Como testar e documentar REST APIs com ScanAPI - Agile Testers Conference 2021
camilamaia
0
140
factory_boy: Testando Objetos Complexos Python Brasil 2021
camilamaia
0
250
Open Source: Você conhece? Sabe como e por que contribuir?
camilamaia
0
160
Other Decks in Programming
See All in Programming
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
CSC307 Lecture 08
javiergs
PRO
0
330
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
2
160
Activities at Cairo Library
cairolibrary720
0
1.2k
CSC307 Lecture 14
javiergs
PRO
0
220
Javaの現状2024夏 / Java current status 2024 summer
kishida
4
1.4k
CSC307 Lecture 09
javiergs
PRO
1
500
【Go言語】ジェネリクス
tomo1227
0
170
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
유연한 Composable 설계
l2hyunwoo
0
380
Async Await: Mastering Python's Time-Bending Tricks - EuroPython2024
yanbo
1
290
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
Producing Creativity
orderedlist
PRO
340
39k
Web Components: a chance to create the future
zenorocha
307
41k
Designing for Performance
lara
604
67k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
Gamification - CAS2011
davidbonilla
78
4.9k
Transcript
CI e automação de deploys em bibliotecas Python Para deixar
qualquer DevOps orgulhoso ⭐ DevOps Extreme - Ago 2021 Camila Maia
Esta apresentação está disponível em: speakerdeck.com/cmaiacd
Quem sou eu? - Desenvolvedora Backend - 10+ anos xp
👵 - Python 🐍 e Ruby 💎 - OpenSource e Comunidades ❤ - Organização de eventos: Pyjamas, EuroPython, Python Brasil….
- Primeiro perfil aprovado no programa de Sponsors para quem
reside no Brasil Quem sou eu?
A biblioteca • Biblioteca Python • Gerenciamento de pacotes e
dependências via Poetry • Distribuída via PyPI e TestPyPI • Código no GitHub
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
Ferramenta
A Aplicação Exemplo
• 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
Fluxo ESPECIFICAÇÃO YAML / JSON RELATÓRIO EFETUA AS REQUESTS EXECUTA
OS TESTES
Integração Contínua
Integração Contínua Main Branch 1 Testes Unitários Lint Testes de
Integração
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
Pytest and Codecov
Lint
Testes de Integração - Run Examples
Deploys
Deploys Main Branch 1 Publish to TestPyPI New Release Publish
to PyPI
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
Publish to TestPyPI
Publish to PyPI
👀
scanapi.dev 🌐
GitHub - https://github.com/scanapi Twitter - @ScanAPI_ Discord - discord.scanapi.dev Comunicação:
ScanAPI Bora trocar uma ideia! 🗣
MUITO OBRIGADA! @cmaiacd camilamaia cmaiacd.com