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
260
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
GitHub Actions - Semana DevOps LINUXTips.pdf
camilamaia
0
21
Minha Jornada em Developer Experience (DX) - DevOpsDays Salvador 2024
camilamaia
0
16
Cumbuca Dev: Ensinando com Open Source - 71º Python Floripa no MeLi
camilamaia
0
51
COMO E PORQUE ENSINAR A PROGRAMAR COM OPEN SOURCE - Python Brasil 2023
camilamaia
0
41
Como testar e manter APIs de qualidade - Codecon Digital 2023
camilamaia
0
370
factory_boy: testing like a pro. DjangoCon US 2022
camilamaia
0
360
ScanAPI Workshop. DjangoCon EU 2022
camilamaia
0
300
factory_boy: testing like a pro. DjangoCon EU 2022
camilamaia
1
390
Como testar e documentar REST APIs com ScanAPI - Agile Testers Conference 2021
camilamaia
0
230
Other Decks in Programming
See All in Programming
Instrumentsを使用した アプリのパフォーマンス向上方法
hinakko
0
130
RuboCop: Modularity and AST Insights
koic
2
1.9k
Amazon CloudWatchの地味だけど強力な機能紹介!
itotsum
0
190
The Evolution of the CRuby Build System
kateinoigakukun
0
730
Contribute to Comunities | React Tokyo Meetup #4 LT
sasagar
0
560
Cursor/Devin全社導入の理想と現実
saitoryc
25
18k
Browser and UI #2 HTML/ARIA
ken7253
2
130
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
2
1.3k
Lambda(Python)の リファクタリングが好きなんです
komakichi
3
220
flutter_kaigi_mini_4.pdf
nobu74658
0
120
Thank you <💅>, What's the Next?
ahoxa
1
560
Golangci-lint v2爆誕: 君たちはどうすべきか
logica0419
1
180
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
KATA
mclloyd
29
14k
Designing Experiences People Love
moore
142
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Into the Great Unknown - MozCon
thekraken
38
1.7k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
What's in a price? How to price your products and services
michaelherold
245
12k
Building an army of robots
kneath
305
45k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
29
5.7k
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