Como Lançar uma Nova Versão
Releases Automatizados (Recomendado)
A maneira mais fácil de lançar novas versões é através de releases semânticos automáticos. Basta fazer commit com o formato de mensagem correto e fazer push - todo o resto acontece automaticamente.
Formato de Mensagem de Commit
Use estes prefixos para controlar qual tipo de release acontece:
fix: resolve bug de parsing de argumentos CLI # → release patch (4.1.0 → 4.1.1)
feat: adiciona novo modo de orquestração de agent # → release minor (4.1.0 → 4.2.0)
feat!: redesenha interface CLI # → release major (4.1.0 → 5.0.0)O Que Acontece Automaticamente
Quando você faz push de commits com fix: ou feat:, o GitHub Actions irá:
- Analisar suas mensagens de commit
- Atualizar a versão no
package.json - Gerar changelog
- Criar tag git
- Publicar no NPM automaticamente
- Criar release no GitHub com notas
Seu Fluxo de Trabalho Simples
# Faça suas alterações
git add .
git commit -m "feat: adiciona modo de colaboração em equipe"
git push
# É isso! O release acontece automaticamente
# Usuários agora podem executar: npx @synkra/aios-core (e obter a nova versão)Commits que NÃO Disparam Releases
Estes tipos de commit não criarão releases (use-os para manutenção):
chore: atualiza dependências # Sem release
docs: corrige erro no readme # Sem release
style: formata código # Sem release
test: adiciona testes unitários # Sem releaseTeste Sua Configuração
npm run release:test # Seguro executar localmente - testa a configuraçãoMétodos de Release Manual (Apenas Exceções)
Somente use estes métodos se você precisar ignorar o sistema automático
Atualização Manual Rápida de Versão
npm run version:patch # 4.1.0 → 4.1.1 (correções de bugs)
npm run version:minor # 4.1.0 → 4.2.0 (novas funcionalidades)
npm run version:major # 4.1.0 → 5.0.0 (mudanças que quebram compatibilidade)
# Depois publique manualmente:
npm publish
git push && git push --tagsDisparo Manual via GitHub Actions
Você também pode disparar releases manualmente através do workflow dispatch do GitHub Actions se necessário.
Solução de Problemas
Release Não Foi Disparado
Se seu merge para main não disparou um release:
- Verifique as mensagens de commit - Apenas prefixos
fix:efeat:disparam releases - Verifique se o CI passou - O release só executa se lint, typecheck e test passarem
- Verifique os logs do workflow - Vá em Actions → Semantic Release para ver detalhes
Release Falhou
Problemas comuns e soluções:
| Erro | Solução |
|---|---|
ENOGHTOKEN | Secret GITHUB_TOKEN ausente ou expirado |
ENOPKGAUTH | Secret NPM_TOKEN ausente ou inválido |
ENOTINHISTORY | Branch não tem histórico apropriado (use fetch-depth: 0) |
EINVALIDNPMTOKEN | Regenere o token NPM com permissões de publicação |
Pular um Release
Para fazer merge sem disparar um release, use uma destas opções:
# Método 1: Use prefixo que não dispara release
git commit -m "chore: atualiza dependências"
# Método 2: Adicione [skip ci] à mensagem de commit
git commit -m "feat: nova funcionalidade [skip ci]"Forçar um Release Manual
Se o release automático falhar, você pode fazer release manualmente:
npm run version:patch # ou minor/major
git push && git push --tags
npm publishArquivos de Configuração
| Arquivo | Propósito |
|---|---|
.releaserc.json | Configuração do semantic release |
.github/workflows/semantic-release.yml | Workflow do GitHub Actions |
package.json | Fonte da versão, scripts npm |
Última atualização: Story 6.17 - Automação de Semantic Release