¿Cómo administrar eficazmente un sitio con Drush make?

Pregunta:

¿Qué cosas son importantes a tener en cuenta al administrar un sitio con Drush make ?

Respuesta:

"Crear archivos", en el contexto de Drush y Drupal, define un conjunto de módulos, temas y bibliotecas que componen un sitio. Si bien uno podría pegar todo el directorio sites / all / modules en git, el archivo make es mucho más rápido de manejar, tanto para git como para los desarrolladores. A continuación se muestra un archivo de creación de un proyecto mío real. He recortado mucho porque el archivo completo tiene cientos de líneas, pero he conservado lo suficiente para mostrar todas las funciones que he usado.

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

La línea api define qué Drush make API usar para el resto del archivo. Una cosa importante a tener en cuenta sobre el archivo es que todos los módulos tienen una versión específica o apuntan a un comando git específico. Nunca tenemos versiones -dev en nuestros archivos. Cuando nos presentamos a una reunión con un cliente o entregamos el archivo make al servidor de Jenkins , nunca debe haber sorpresas. Se debe probar la versión exacta incluida en el archivo y se espera que pase todos los tipos de pruebas. Esto es importante para poder entregar algo de alta calidad.

En mi empresa, el acuerdo general es que cada equipo proporciona un script de shell llamado "compilación", en la raíz del repositorio, que es responsable de configurar el sitio, de modo que el mismo equipo cruzado pueda ejecutar las pruebas automatizadas. Configuración de CI.

Las actualizaciones de módulos se pueden realizar rápidamente directamente en los sitios para realizar pruebas, pero oficialmente actualizando el archivo make y reconstruyendo el sitio.

Actualmente, mi equipo usa este conjunto de scripts de compilación . Estoy trabajando para trasladar gran parte de la funcionalidad a una extensión drush que utilizará mucho la provisión. Una versión CLI de Aegir por así decirlo.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım