문제

Capistrano를 사용하여 배치를 위해 GIT의 특정 커밋 SHA를 어떻게 타겟팅 할 수 있는지 궁금합니다. 그것은 같은 것입니다

cap deploy --version=<sha targeted>

많은 검색 후에 이것에 대한 답을 찾을 수없는 것 같습니다.

도움이 되었습니까?

해결책

Capistrano 2.9의 경우 3.0까지 :

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

구형 버전의 Capistrano 용, 당신은이를 통해 특정 git commit/tree/branch/tag를 배포 할 수 있습니다.

cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

경우에 따라 환경을 인수로 지정해야 할 수도 있습니다. production 단지 예입니다.

cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

다른 팁

Molf의 대답은 나에게 효과가 없었습니다 (Capistrano 2.11.2 사용). 다음과 같이 분기 대신 "개정"을 사용해야했습니다.

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

Capistrano 3

당신의 deploy.rb 또는 단계별 파일과 같은 config/deploy/production.rb

set :branch, ENV.fetch('REVISION', 'master')

이를 통해 특정 GIT 개정을 가리킬 수 있습니다. SHA뿐만 아니라 실제 개정 (예 : GIT 태그, 주석이 달린 태그 또는 분기)으로 해결되는 모든 것을 받아들입니다.

설정하여 명령 줄에서 사용하십시오 REVISION 환경 변수, 예를 들어

bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993

bundle exec cap staging deploy REVISION=my-topic-branch

ASK : Branch, 'Master'

리턴을 누르면 입력을 요구하지만 기본값은 '마스터'로 표시됩니다.

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