Câu trả lời:
"Tạo tệp", trong ngữ cảnh Drush và Drupal, xác định một tập hợp các mô-đun, chủ đề và thư viện tạo nên một trang web. Mặc dù người ta có thể dán toàn bộ thư mục trang web / all / mô-đun vào git, nhưng tệp tạo nhanh hơn rất nhiều để xử lý, cho cả git và nhà phát triển. Dưới đây là một tập tin thực hiện từ một dự án thực tế của tôi. Tôi đã cắt bỏ rất nhiều vì toàn bộ tệp có hàng trăm dòng, nhưng tôi đã giữ lại đủ để hiển thị tất cả các chức năng tôi đã sử dụng.
; API
api = 2
; Core
core = 7.x
projects[drupal][version] = 7.14
; Contrib modules
projects[date][version] = 2.0-alpha4
projects[email][version] = 1.0
; Media and file_entity go hand in hand - please make sure they work together.
projects[media][version] = 2.0-unstable5
projects[file_entity][version] = 2.0-unstable5
; Cron modules
projects[ultimate_cron][version] = 1.6
projects[background_process][version] = 1.12
; Performance modules
projects[expire][version] = 1.0-alpha2
projects[cache_actions][version] = 2.0-alpha3
; Unstable modules
projects[menu_node_views][type] = module
projects[menu_node_views][download][type] = git
projects[menu_node_views][download][url] = http://git.drupal.org/project/menu_node_views.git
projects[menu_node_views][download][revision] = f46dd41eb8c4e693a6642a6c461afa57d99a6f1b
projects[filefield_sources_plupload][type] = module
projects[filefield_sources_plupload][download][type] = git
projects[filefield_sources_plupload][download][url] = http://git.drupal.org/project/filefield_sources_plupload.git
projects[filefield_sources_plupload][download][revision] = da374770b80fcbc0dab17158d38c8436ef29caca
projects[menu_token][type] = module
projects[menu_token][download][type] = git
projects[menu_token][download][url] = http://git.drupal.org/project/menu_token.git
projects[menu_token][download][revision] = 8c18fbb
; Libraries
libraries[mediaelement][download][type] = "file"
libraries[mediaelement][download][url] = "https://github.com/johndyer/mediaelement/zipball/2.7.0"
; Patches
; #1491150: node_load in menu_node_menu_link_insert is not safe - http://drupal.org/node/1491150
projects[menu_node][patch][] = http://drupal.org/files/menu_node-node_load-in-menu_node_menu_link_insert-1491150-1.patch
; Fix rendering of relation endpoints
projects[relation][patch][] = http://drupal.org/files/relation_table_endpoints_break.patch
projects[relation][patch][] = http://drupal.org/files/relation_bundle_permissions.patch
libraries[jquery-json-min][download][type] = "file"
libraries[jquery-json-min][download][url] = "http://jquery-json.googlecode.com/files/jquery.json-2.3.min.js"
libraries[jquery-json-min][download][sha1] = "2a4615b93c65dd50f92117c570121035a0327fee"
libraries[jquery-json-min][destination] = "libraries/jquery-json"
Dòng api xác định Drush tạo API để sử dụng cho phần còn lại của tệp. Một điều quan trọng cần lưu ý về tệp, là tất cả các mô-đun đều có phiên bản cụ thể hoặc trỏ đến một lệnh git cụ thể. Chúng tôi không bao giờ có phiên bản -dev trong các tập tin của chúng tôi. Khi chúng tôi xuất hiện tại một cuộc họp khách hàng, hoặc bàn giao hồ sơ cho máy chủ Jenkins , không bao giờ có bất kỳ sự ngạc nhiên nào. Phiên bản chính xác có trong tệp nên được kiểm tra và dự kiến sẽ vượt qua tất cả các loại thử nghiệm. Điều này rất quan trọng để có thể cung cấp một cái gì đó có chất lượng cao.
Trong công ty của tôi, thỏa thuận chung là mọi đội cung cấp một tập lệnh shell có tên là "build", trong thư mục gốc của kho lưu trữ, chịu trách nhiệm thiết lập trang web, để các bài kiểm tra tự động có thể được chạy bởi cùng một nhóm Thiết lập CI.
Cập nhật mô-đun có thể được thực hiện nhanh chóng trực tiếp trên các trang web để thử nghiệm, nhưng chính thức bằng cách cập nhật tệp tạo và xây dựng lại trang web.
Nhóm của tôi hiện đang sử dụng bộ tập lệnh xây dựng này . Tôi đang làm việc để chuyển phần lớn các chức năng sang một phần mở rộng drush sẽ sử dụng rất nhiều điều khoản. Một phiên bản CLI của Aegir nếu bạn muốn.