O build do site da PyLadies Brasil quebrou. Foi resolvido dia 01 de Outubro ao renovar a chave SSH do Codeship.
Contexto
O site do PyLadies Brasil é escrito em Pelican, um gerador de sites estáticos escrito em Python, e tem seu código hospedado no GitHub, uma rede social de compartilhamento de código. Hoje nós temos no ar o ambiente de produção, que tem seu build feito pelo Codeship (ferramenta de integração contínua) e o Heroku, uma plataforma para colocar webapps no ar, além das previews que são geradas a cada novo Pull Request pelo Netlify para podermos navegar pelo site e checar se tudo está ok antes de fazermos o merge das mudanças para a branch principal.
Nem todas as mantenedoras do site têm acesso ao Codeship, o que resultou em uma pequena demora na identificação do problema.
Investigação
A primeira quebra de build foi percebida apenas quando foi feito um Pull Request que inseria uma nova postagem. Após a revisão, aprovação e merge do código, foi notado que a postagem não aparecia no site em produção, pois o build havia quebrado. Na preview do Netlify e rodando localmente, a postagem aparecia normalmente, o que nos fez concluir que o problema não era no código em si, mas em algum outro ponto do processo.
Quando conseguimos acessar o Codeship, vimos a especificação do erro:
Imaginamos que alguma chave SSH tinha expirado e, por isso, fomos atrás das configurações do Codeship pra entender qual o procedimento que deveria ser feito para renovar e adicionar a chave nova.
Solução
O Codeship tem uma página específica para renovarmos a chave pública da aplicação:
Portanto, precisamos renovar a chave no Codeship e autorizar a chave para fazer o deploy automaticamente. Ou seja, precisamos também trocar a chave nova no GitHub do projeto. Para isso, é necessário ir até o repositório do site na aba de configurações (Settings), procurar a opção Deploy Keys no menu à esquerda e então clicar em Add deploy key (adicionar chave de deploy). Depois disso, é só copiar e colar a chave nova do Codeship!
Todos os builds devem voltar a funcionar a partir desse momento. É necessário refazer os antigos builds que deram errado.
Conclusão
O Codeship não expões seus logs para pessoas que não fazem parte do time. Algumas pessoas do novo time de tecnologia não têm acesso, o que dificulta na hora de diagnosticar um problema. Talvez rever as configurações da ferramenta pra conseguir tornar esses logs públicos ou achar uma maneira mais simples de o time conseguir verificar o que de fato aconteceu no build também faria com que evitássemos perder muito tempo com problemas que vão ser recorrentes, como é o caso de uma chave SSH expirada.