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.
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)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
# 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 aiox-core (e obter a nova versão)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 releasenpm run release:test # Seguro executar localmente - testa a configuraçãoSomente use estes métodos se você precisar ignorar o sistema automático
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 --tagsVocê também pode disparar releases manualmente através do workflow dispatch do GitHub Actions se necessário.
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
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 |
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]"Se o release automático falhar, você pode fazer release manualmente:
npm run version:patch # ou minor/major
git push && git push --tags
npm publish| 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