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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top