Capistrano 배포를 사용하여 특정 Commit SHA를 대상으로하는 방법
-
06-09-2019 - |
문제
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'
리턴을 누르면 입력을 요구하지만 기본값은 '마스터'로 표시됩니다.
제휴하지 않습니다 StackOverflow