Tôi đang sử dụng capistrano để triển khai ứng dụng RoR. Codebase nằm trong kho git và phân nhánh được sử dụng rộng rãi trong phát triển. Capistrano sử dụng deploy.rb
tệp cho các cài đặt của nó, một trong số chúng là nhánh để triển khai.
Vấn đề của tôi là thế này: giả sử tôi tạo một nhánh A mới từ chủ . Các tập tin triển khai sẽ tham chiếu chi nhánh tổng thể . Tôi chỉnh sửa nó, vì vậy A có thể được triển khai để kiểm tra môi trường. Tôi hoàn thành công việc trên tính năng và hợp nhất nhánh A thành chủ . Kể từ khi deploy.rb
tập tin từ Một là tươi, nó được sáp nhập vào và bây giờ deploy.rb
trong tổng thể tham khảo chi nhánh Một . Thời gian để chỉnh sửa một lần nữa.
Đó là rất nhiều chỉnh sửa thủ công dường như không cần thiết - tham số phải luôn khớp với tên chi nhánh hiện tại. Trên hết, thật dễ dàng để quên chỉnh sửa các cài đặt mỗi lần.
Điều gì sẽ là cách tốt nhất để tự động hóa quá trình này?
Chỉnh sửa: Hóa ra ai đó đã thực hiện chính xác những gì tôi cần :
Sáng nay tôi có dịp triển khai một nhánh của kho git đến một máy chủ dàn dựng nhưng không có ý tưởng rõ ràng nhất. Một tìm kiếm nhanh thông qua mã nguồn capistrano cho thấy tôi có thể sử dụng được thiết lập
:branch "branch_name"
trong tập lệnh triển khai của mình. Tôi đã thử và nó đã hoạt động. Sau đó, tôi nghĩ rằng tôi sẽ cần phải thực hiện một thay đổi tương tự trên tất cả các chi nhánh của tôi. Tất nhiên, tôi là một người lười biếng và tự hỏi liệu có cách nào tốt hơn không.Nếu bạn không quen với git, đầu ra của lệnh git nhánh là một danh sách các nhánh có dấu hoa thị đánh dấu cái hiện đang được kiểm tra trên máy cục bộ của bạn. Ví dụ:
> git branch * drupal_authentication fragment_caching master
Vì vậy, tôi đã tìm ra, điều gì sẽ xảy ra nếu tôi chỉ phân tích cú pháp đầu ra và tìm kiếm nhánh được đánh dấu là hiện tại:
set :branch, $1 if `git branch` =~ /\* (\S+)\s/m
Bây giờ tôi có thể triển khai bất kỳ nhánh nào hiện có trên máy cục bộ của mình từ một tập lệnh triển khai, chia sẻ, duy nhất.