문제

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top