Capistrano 배포의 로그를 유지하십시오
-
22-07-2019 - |
문제
Capistrano를 통해 배포를 수행 할 때마다 로그를 유지하거나 원격 서버에 저장)를 유지하는 방법이 있습니까? 과거에 주어진 시간에 어떤 개정이 진행되었는지 기록하는 것이 매우 유용 할 것입니다.
배포 프로세스는 릴리스 디렉토리의 마지막 10 개 배포에 대한 배포 된 파일 뒤에 남겨 두지만 더 많은 이력을 유지하고 플랫 파일 형태로 액세스 할 수 있도록하는 것이 좋습니다.
해결책
Capistrano는 몇 가지 유용한 변수를 설정합니다 latest_revision
파일에 버릴 수 있습니다.
task :mark_revision do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
다른 팁
기능이 내장되어 있지 않으므로 다른 대답은 완벽하게 작동합니다. 어떻게 든 기본 실행 체인에 첨부해야한다고 말할 수 있습니다.
after :deploy, :mark_revision
더 나은 IMHO는 다음과 같습니다.
after :deploy do
log = "#{deploy_to}/revisions.log"
run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
"echo #{latest_revision} >> #{log};"
end
Capistrano의 버그 추적기에 대한 토론 티켓으로 열었습니다. 아마도 더 나은 로그를 유지하기 위해 코어에서 무언가를 구현할 것입니다. 확실히 우리가 가혹하게 간과 한 좋은 질문입니다!
Peritor Labs의 "Webistrano"는 데이터베이스 구동 웹 전면 엔드를 유지함으로써 유사한 작업을 수행하므로 원하는대로 로그인하고 개발자 기계를 더 중심으로 배포하기위한 종속성을 이동할 수 있습니다. 사람들은 종종 CI 서버에서 webistrano를 사용하거나자가 호스팅 인 경우 저장소 호스트를 사용합니다. TRAC에 대한 자세한 정보 : http://labs.peritor.com/webistrano
버그는 여기에 있습니다. https://capistrano.lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments