Este repositório foi configurado para o seguinte fluxo:
- em todo push e todo pull request: rodar testes e validar o build
- em release publicada manualmente: gerar os artefatos de distribuição e anexá-los à release do GitHub
Esse modelo evita publicação automática a cada commit e combina melhor com um projeto que será distribuído principalmente por GitHub e releases.
Arquivo: .github/workflows/ci.yml
Executa:
- checkout do código
- setup do Python 3.10 e 3.11
- instalação do projeto com dependências de desenvolvimento
- execução do
pytest - execução de
python -m build
Esse workflow roda em:
pushparamainemasterpull_request
Arquivo: .github/workflows/release.yml
Executa:
- checkout do código
- setup do Python 3.10
- instalação de dependências de build
- geração de
sdistewheelemdist/ - upload dos artefatos da pasta
dist/para a release do GitHub
Esse workflow roda em:
release.published
Além disso, ele ignora pre-release.
- Atualize a versão em
pyproject.toml - Faça commit das alterações
- Envie para o GitHub
- Crie uma tag, por exemplo
v1.0.0 - Publique uma release manual estável no GitHub usando essa tag
Quando a release for publicada, o workflow release.yml será executado e anexará os arquivos gerados em dist/.
Este projeto não publica em GitHub Packages como índice Python para pip, porque esse tipo de registry não é suportado para pacotes Python.
Para este caso, as opções documentadas são:
- instalar direto do GitHub com
pip install "git+https://..." - baixar o
.whlda release e instalar compip install arquivo.whl
pip install "git+https://github.com/DanielArndt0/pydf.git"pip install "git+https://github.com/DanielArndt0/pydf.git@v1.0.0"pip install -e .[dev]
pytest -v
python -m build