O que é importante considerar ao gerenciar um site usando o Drush make ?
O que é importante considerar ao gerenciar um site usando o Drush make ?
Respostas:
"Criar arquivos", no contexto Drush e Drupal, define um conjunto de módulos, temas e bibliotecas que compõem um site. Embora se possa colocar todo o diretório sites / all / modules no git, o arquivo make é muito mais rápido de manusear, tanto para o git quanto para os desenvolvedores. Abaixo está um arquivo make de um projeto real meu. Recortei bastante, pois o arquivo inteiro tem centenas de linhas, mas retive o suficiente para mostrar todas as funcionalidades que usei.
; 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"
A linha api define qual Drush cria a API a ser usada para o restante do arquivo. Uma coisa importante a ser observada sobre o arquivo é que todos os módulos possuem uma versão específica ou apontam para um commit git específico. Nós nunca temos versões -dev em nossos arquivos. Quando comparecemos em uma reunião de clientes ou entregamos o arquivo make ao servidor Jenkins , nunca deve haver surpresas. A versão exata incluída no arquivo deve ser testada e deve passar em todos os tipos de testes. Isso é importante para poder oferecer algo de alta qualidade.
Na minha empresa, o acordo geral é que toda equipe fornece um shell-script chamado "build", na raiz do repositório, responsável pela configuração do site, para que testes automatizados possam ser executados pela mesma equipe cruzada Configuração do IC.
As atualizações do módulo podem ser feitas rapidamente diretamente nos sites para teste, mas oficialmente atualizando o arquivo make e reconstruindo o site.
Atualmente, minha equipe usa esse conjunto de scripts de construção . Estou trabalhando para mover grande parte da funcionalidade para uma extensão drush que usará fortemente a provisão. Uma versão CLI do Aegir, se desejar.