Drush make로 사이트를 효과적으로 관리하는 방법은 무엇입니까? 관리 할 때 고려해야

Drush make를 사용하여 사이트를 관리 할 때 고려해야 할 사항은 무엇입니까 ?



답변

Drush and Drupal 컨텍스트에서 “파일 만들기”는 사이트를 구성하는 모듈, 테마 및 라이브러리 세트를 정의합니다. 전체 sites / all / modules 디렉토리를 git에 넣을 수는 있지만 make 파일은 git과 개발자 모두 처리하기가 훨씬 빠릅니다. 아래는 실제 프로젝트에서 만든 파일입니다. 전체 파일이 수백 줄이기 때문에 많은 부분을 잘라 냈지만 사용했던 모든 기능을 보여줄만큼 충분히 유지했습니다.

; 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"

api 줄은 파일의 나머지 부분에 사용할 Drush make API를 정의합니다. 파일에 대해 주목해야 할 중요한 사항은 모든 모듈에 특정 버전이 있거나 특정 자식 커밋을 가리 킵니다. 우리는 결코 우리의 파일 -dev 버전이 없습니다. 우리는에 메이크업 파일을 통해 클라이언트 회의, 또는 손에 표시 할 때 젠킨스의 서버가 있어야 결코 놀랄 수 없습니다. 파일에 포함 된 정확한 버전을 테스트해야하며 모든 유형의 테스트를 통과해야합니다. 이것은 고품질의 것을 전달할 수있는 것이 중요합니다.

우리 회사의 일반적인 합의는 모든 팀이 저장소의 루트에 “빌드”라는 쉘 스크립트를 제공하여 사이트 설정을 담당하므로 동일한 교차 팀에서 자동 테스트를 실행할 수 있다는 것입니다. CI 설정.

테스트를 위해 사이트에서 직접 모듈 업데이트를 신속하게 수행 할 수 있지만 공식적으로 make 파일을 업데이트하고 사이트를 다시 빌드해야합니다.

우리 팀은 현재이 빌드 스크립트 세트를 사용합니다 . 많은 기능을 프로비저닝을 많이 사용하는 drush 확장으로 옮기려고 노력하고 있습니다. Aegir의 CLI 버전입니다.