Mantenha registro de implementações Capistrano
-
22-07-2019 - |
Pergunta
Existe uma maneira de manter um registro (local ou armazenado em um servidor remoto) de cada vez que uma implantação é feita através de Capistrano? Seria muito útil para manter um registro do que a revisão estava correndo em um determinado momento no passado.
Eu sei que as folhas de processo de implantação por trás dos arquivos implantados nos últimos 10 implantações no diretório releases, mas seria bom para manter mais história e tê-lo acessível na forma de um arquivo simples.
Solução
Capistrano define algumas variáveis ??votos, um chamado latest_revision
que você pode despejar em um arquivo.
task :mark_revision do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
Outras dicas
Não há nenhuma funcionalidade incorporada, para que a outra resposta iria funcionar perfeitamente; Eu poderia dizer que você deve anexá-lo para a cadeia de execução padrão de alguma forma, eu recomendaria algo como
after :deploy, :mark_revision
de melhor ainda imho seria algo como:
after :deploy do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
Eu abri-lo como um bilhete para discussão em bug tracker de Capistrano, talvez nós vamos implementar algo no núcleo para manter melhores registos; é certamente uma grande questão que temos duramente esquecido!
Peritor Labs' 'Webistrano' faz algo semelhante, mantendo uma extremidade web-frente conduzido base de dados, o que permite que você faça login o que quiser, e mover a dependência para implantação fora das máquinas de desenvolvedor para um lugar mais central; muitas vezes as pessoas usam Webistrano em seu servidor CI, ou host repositório se eles são auto-hospedagem. Mais informações sobre o Trac: http://labs.peritor.com/webistrano
O bug reside aqui: https: // Capistrano. lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments