Drush make kullanarak bir siteyi yönetirken nelere dikkat etmek gerekir ?
Drush make kullanarak bir siteyi yönetirken nelere dikkat etmek gerekir ?
Yanıtlar:
"Dosyaları hazırla", Drush ve Drupal bağlamında, bir siteyi oluşturan bir dizi modül, tema ve kitaplık tanımlar. Biri tüm siteler / all / modules dizinini git'e yapıştırabilirken, make dosyası hem git hem de geliştiriciler için çok daha hızlıdır. Aşağıda gerçek bir projemden bir marka dosyası. Tüm dosya yüzlerce satır olduğu için çok şey kestim, ancak kullandığım tüm işlevleri gösterecek kadar korudum.
; 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 satırı, hangi Drush'ın dosyanın geri kalanı için API kullanacağını tanımlar. Dosya hakkında dikkat edilmesi gereken önemli bir nokta, tüm modüllerin belirli bir sürümünün olması veya belirli bir git komutunu göstermesidir. Biz asla bizim dosyalarında -dev versiyonları var. Bir müşteri toplantısında göründüğümüzde veya make dosyasını Jenkins sunucusuna teslim ettiğimizde hiçbir zaman sürpriz olmamalı. Dosyaya dahil edilen tam sürüm test edilmeli ve her tür testi geçmesi beklenmelidir. Bu, yüksek kalitede bir şey teslim edebilmek için önemlidir.
Şirketimde genel anlaşma, her ekibin, sitenin kurulumundan sorumlu olan deponun kökünde "build" adlı bir kabuk komut dosyası sağlamasıdır, böylece otomatik testler aynı çapraz ekip tarafından çalıştırılabilir CI kurulumu.
Modül güncellemeleri test için doğrudan sitelerde hızlı bir şekilde yapılabilir, ancak resmi olarak make dosyasını güncelleyerek ve siteyi yeniden oluşturarak.
Ekibim şu anda bu yapı komut dosyaları kümesini kullanıyor . Ben işlevselliği büyük ölçüde hükmü olsa provizyon kullanacak bir drush uzantısına taşımak için çalışıyorum. İsterseniz Aegir'in CLI versiyonu.