pytestpytest --cov=react_agent_framework --cov-report=htmlpytest tests/test_providers.py -v
pytest tests/test_memory.py::TestSimpleMemory::test_add_message -v- Trigger: Push ou Pull Request
- Ação: Roda todos os testes com pytest
- Matriz: Python 3.8, 3.9, 3.10, 3.11, 3.12
- OS: Ubuntu, Windows, macOS
- Trigger: Push de tag
v*.*.* - Ação: Publica automaticamente no PyPI
- Requer: Testes passando primeiro
Para que os workflows funcionem, configure os seguintes secrets:
-
Acesse:
https://github.com/marcosf63/react-agent-framework/settings/secrets/actions -
Adicione os secrets:
-
PYPI_API_TOKEN
- Valor:
pypi-...(seu token do PyPI) - Usado para publicação no PyPI production
- Valor:
-
TEST_PYPI_API_TOKEN
- Valor:
pypi-...(seu token do TestPyPI) - Usado para publicação no TestPyPI (opcional, para testes)
- Valor:
-
- Acesse: https://pypi.org/manage/account/token/
- Clique em "Add API token"
- Nome:
GitHub Actions - react-agent-framework - Scope:
Project: react-agent-framework - Copie o token (começa com
pypi-)
- Acesse: https://test.pypi.org/manage/account/token/
- Repita o mesmo processo
# Fazer alterações
git add .
git commit -m "feat: nova funcionalidade"
git push- ✅ Testes rodam automaticamente
- ✅ Verifica em múltiplas versões do Python
- ✅ Verifica em múltiplos sistemas operacionais
# 1. Atualizar versão em pyproject.toml
vim pyproject.toml # version = "0.10.0"
# 2. Atualizar CHANGELOG.md
vim CHANGELOG.md
# 3. Commit das alterações
git add pyproject.toml CHANGELOG.md
git commit -m "chore: bump version to 0.10.0"
git push
# 4. Criar tag
git tag v0.10.0
git push origin v0.10.0- ✅ Workflow de testes roda primeiro
- ✅ Se testes passarem, publica no TestPyPI
- ✅ Se TestPyPI OK, publica no PyPI
- ✅ Cria GitHub Release automaticamente
- ✅
__init__.py- 100% - ✅
providers/openai_provider.py- 100% - ✅
providers/factory.py- 97% - ✅
providers/ollama_provider.py- 88% - ✅
memory/simple.py- 87% - ✅
memory/base.py- 85% - ✅
providers/base.py- 85%
- ⏳
core/react_agent.py- 17% - ⏳
tools/- 30-40% - ⏳
core/environment/- 0% - ⏳
core/reasoning/- 0% - ⏳
mcp/- 15-30%
tests/
├── README.md # Documentação dos testes
├── __init__.py
├── conftest.py # Fixtures compartilhadas
├── test_imports.py # Testa imports (15 testes)
├── test_providers.py # Testa providers (30 testes)
└── test_memory.py # Testa memória (32 testes)
# Providers mockados
def test_something(mock_openai_provider):
assert mock_openai_provider.generate(...) == "Mocked response"
# Agent simples
def test_agent(simple_agent):
assert simple_agent.name == "Test Agent"
# Agent com tool
def test_tool(agent_with_tool):
result = agent_with_tool.tools["test_tool"]()
assert result == "test result"
# Dados de exemplo
def test_messages(sample_messages):
assert len(sample_messages) == 3
def test_objectives(sample_objectives):
assert len(sample_objectives) == 2- Actions Tab: https://github.com/marcosf63/react-agent-framework/actions
- Último workflow: Mostra status dos testes
- Badge: Adicione ao README.md:
- Verifique versão do Python
- Verifique dependências opcionais
- Rode:
pytest --tb=shortpara ver erros
- Verifique se PYPI_API_TOKEN está configurado
- Verifique se a versão já existe no PyPI
- Verifique logs do workflow
- Verifique se o push foi para
main - Verifique se a tag segue o formato
v*.*.* - Verifique se há erros no YAML do workflow