Este post é um case real. Montei o pipeline de CI/CD completo deste blog usando o Kiro CLI, via conversa no terminal. Desde o Dockerfile até a notificação no Telegram, tudo foi criado, testado e corrigido em uma sessão.
O cenário
Blog Hugo rodando em container Docker num servidor ARM64 (Oracle Cloud). Antes da automação, o deploy era manual: editar arquivo, commit, SSH no servidor, git pull, docker restart.
O objetivo: editar um post no browser e o blog atualizar sozinho.
O que o Kiro criou
1. Dockerfile otimizado
| |
2. Docker Compose com volumes
| |
Os volumes permitem que mudanças em conteúdo e configuração sejam detectadas sem rebuild do container.
3. GitHub Actions
| |
4. Netlify CMS
Interface web em /admin/ para editar posts sem tocar em código:
- Login com GitHub OAuth
- Editor visual com preview
- Workflow editorial (draft → review → publish)
- Commit automático no repositório
Problemas que o Kiro resolveu
Bug do Docker COPY
Os arquivos da pasta /admin/ não eram copiados para dentro do container durante o build. Investigamos juntos e o Kiro identificou a causa raiz: um arquivo .gitmodules antigo que referenciava a pasta como submódulo. Removido o arquivo, o COPY voltou a funcionar.
Data futura no Hugo
Um post criado com data no futuro não aparecia no blog. Hugo por padrão não publica posts com data futura. O Kiro identificou o problema comparando o timestamp do post com o horário do servidor.
Config.toml não atualizava
Mudanças no config.toml não refletiam no blog porque o arquivo era copiado no build mas não montado como volume. Adicionamos ./config.toml:/src/config.toml:ro no compose.
O fluxo final
| |
Lições aprendidas
- Volumes > rebuild: Montar content e config como volumes evita rebuild para mudanças de conteúdo
- Healthcheck salva: Sem healthcheck, o container pode estar “running” mas o Hugo travado
- Notificação é essencial: Saber que o deploy funcionou (ou falhou) sem precisar verificar manualmente
- Debug com AI funciona: O Kiro investigou o bug do
.gitmodulesde forma sistemática, testando hipóteses até encontrar a causa raiz
Automação de deploy não precisa ser complexa. Um Dockerfile, um compose, um workflow do GitHub Actions e uma notificação. O Kiro ajudou a criar tudo isso em uma sessão, incluindo debug de problemas que eu levaria horas para encontrar sozinho.
