Versionamento & Build
Projetos profissionais exigem controle de versão confiável e um processo de build padronizado.
O Lino adota Semantic Versioning (SemVer) para gerenciar versões de cada serviço e fornece comandos para gerar imagens Docker já nomeadas de acordo com a versão ativa do serviço.
Versionamento de Serviços
Cada serviço no Lino possui versionamento independente, permitindo que eles evoluam em ritmos distintos sem exigir sincronização global.
Padrão SemVer
MAJOR.MINOR.PATCH
- MAJOR → mudanças incompatíveis (breaking changes).
- MINOR → novas funcionalidades compatíveis.
- PATCH → correções de bugs e melhorias internas.
Exemplos:
1.0.0 → primeira versão estável.
1.1.0 → novos endpoints adicionados sem quebra de compatibilidade.
2.0.0 → mudanças que exigem atualização dos clientes.
Comando lino version
O CLI oferece suporte nativo para incremento de versões:
lino version bump
O assistente interativo guiará você para escolher o tipo de incremento (major, minor, patch) e atualizar automaticamente o arquivo de configuração do serviço com a nova versão.
Cada execução atualiza o manifesto de versão do serviço, garantindo:
- Rastreamento claro de mudanças.
- Consistência com práticas de release.
- Alinhamento com pipelines de CI/CD.
Build de imagens Docker
O Lino gera automaticamente imagens Docker para cada versão de serviço ou aplicação web, eliminando tarefas manuais.
Padrão de Nomeação:
nome-projeto/services/nome-servico : major.minor.patch
As imagens podem ser publicadas em qualquer registro:
- Docker Hub
- GitHub Container Registry
- AWS ECR
- Azure Container Registry
- ou qualquer outro repositório compatível.
Comando lino build
Para compilar e gerar imagens Docker, basta executar:
lino build
O que acontece nesse processo:
1. O código do serviço e/ou aplicação web é compilado.
2. As configurações necessárias (connection strings, secrets, variáveis de ambiente) são aplicadas.
3. Uma imagem Docker é gerada com base na versão SemVer atual.
4. A imagem recebe nome e tag padronizados.
Esse processo garante builds consistentes e reprodutíveis, reduzindo falhas em ambientes de produção e acelerando o deploy em pipelines CI/CD.
Assim, o Lino combina versionamento independente por serviço com um processo de build automatizado, entregando governança de releases e distribuição confiável em qualquer ambiente.
