Capistrano를 사용하여 RoR 응용 프로그램을 배포하고 있습니다. 코드베이스는 git 저장소에 있으며 분기는 개발에 널리 사용됩니다. Capistrano는 deploy.rb
설정에 파일을 사용하며 그중 하나는 배포 할 분기입니다.
내 문제는 이것이다 : master 에서 새 분기 A 를 만든다고 가정 해 봅시다 . 배포 파일은 마스터 브랜치 를 참조 합니다. 나는 그것을 편집하여 A 를 테스트 환경에 배포 할 수 있습니다. 기능 작업을 마치고 분기 A 를 master에 병합 합니다. A 의 파일 이 더 최신이므로 병합되고 이제 in master 브랜치가 A를 참조합니다 .deploy.rb
deploy.rb
합니다. 다시 편집 할 시간입니다.
겉보기에는 불필요한 수동 편집이 많이 필요합니다. 매개 변수는 항상 현재 브랜치 이름과 일치해야합니다. 또한 매번 설정을 편집하는 것을 잊기 쉽습니다.
이 프로세스를 자동화하는 가장 좋은 방법은 무엇입니까?
편집 : 누군가 내가 필요한 것을 이미 정확히했다고 밝혀 졌습니다 .
오늘 아침 나는 스테이징 서버에 git 저장소의 브랜치를 배포 할 기회가 있었지만 그 방법을 가장 잘 알지 못했습니다. 카피 스트라 노 소스 코드를 빠르게 검색 한 결과
:branch "branch_name"
배포 스크립트에서 set 를 사용할 수 있음이 드러났습니다 . 나는 그것을 시도하고 작동했습니다. 그런 다음 모든 지점에서 비슷한 변경을해야한다고 생각했습니다. 물론 나는 게으른 잔디이고 더 좋은 방법이 없는지 궁금했다.git에 익숙하지 않은 경우 git branch 명령의 출력은 로컬 머신에서 현재 체크 아웃 된 항목을 표시하는 별표가있는 분기 목록입니다. 예를 들면 :
> git branch * drupal_authentication fragment_caching master
그래서 나는 방금 출력을 구문 분석하고 현재로 표시된 분기를 검색하면 어떻게 될까 생각했습니다.
set :branch, $1 if `git branch` =~ /\* (\S+)\s/m
이제 단일 공유 배포 스크립트에서 내 로컬 컴퓨터에 현재 브랜치를 배포 할 수 있습니다.