Programación y sistemas

Integración continua: Automatizando la descarga del código fuente de WordPress, Drupal, etc. y sus plugins, módulos y temas

Antes de mejorar la automatización de la creación de los repositorios que vimos en el post Integración continua: Automatizando la creación de repositorios con Git y Subversion para poder crear proyectos en WordPress, Drupal, Symfony, o cualquier otro cms o framework, primero necesitamos obtener el código fuente, creando en nuestro servidor una pequeña biblioteca de código fuente desde la que copiaremos lo que necesitamos para los proyectos.

En esta biblioteca guardaremos el código fuente de los cms y frameworks que usemos, además de los módulos, plugins, bundles y temas que utilicemos habitualmente.

Como vamos a crear varios script en Bash, vamos a organizarlos y guardarlo en un directorio. Puedes nombrarlos como quieras, yo utilizaré el siguiente /var/www/dev/sh.

 

WordPress

En ese directorio creamos el archivo Bash llamado WordPress.sh con el siguiente contenido:

[codesyntax lang=»bash»]

#!/bin/bash

#EXPORTAMOS EL CÓDIGO DE WORDPRESS
svn export --force http://core.svn.wordpress.org/trunk/ /var/www/dev/php_sources/wordpress/core

#EXPORTAMOS LOS ARCHIVOS DE TRADUCCIÓN DE WORDPRESS
svn export --force http://svn.automattic.com/wordpress-i18n/es_ES/trunk/messages/ /var/www/dev/php_sources/wordpress/core/wp-content/languages

[/codesyntax]

Como puedes ver, lo que hacemos es ejecutar el comando export de Subversion para recuperar el código fuente de la rama trunk de WordPress, que es donde se encuentra la versión más estable de este cms. Después exportamos los archivos de idioma, ya que por defecto, WordPress solo trae el inglés.

Otra cosa que puedes observar es que el código fuente se guarda en el directorio /var/www/dev/php_sources/wordpress/core, con lo que tendrás que crear esos directorios con el comando:

mkdir -p /var/www/dev/php_sources/wordpress/core

Ahora tendremos que añadir los plugins que habitualmente utilicemos en los proyectos. Aquí solo pondré un ejemplo, ya que es posible que no sean los mismos que vosotros uséis:

[codesyntax lang=»bash»]

###########
# PLUGINS #
###########

#W3-total-cache
svn export --force http://plugins.svn.wordpress.org/w3-total-cache/trunk /var/www/dev/php_sources/wordpress/plugins/w3-total-cache

[/codesyntax]

En este caso, exportamos el código fuente del plugin w3 total cache. Como ves, el código fuente se guarda en un directorio diferente al del código fuente de WordPress. Para crearlo habría que usar el comando anterior, pero con el directorio de los plugins:

mkdir -p /var/www/dev/php_sources/wordpress/plugins

Ahora a por los temas:

[codesyntax lang=»bash»]

##########
# THEMES #
##########

#iFeature
svn export --force http://themes.svn.wordpress.org/ifeature/5.5.3/ /var/www/dev/php_sources/wordpress/themes/ifeature

[/codesyntax]

Aquí hacemos lo mismo que en el caso de los plugins: crear el directorio:

mkdir -p /var/www/dev/php_sources/wordpress/themes

Con esto ya tenemos el script para obtener el código fuente de WordPress, sus plugins y temas.

 

Drupal

Con Drupal procedemos de la misma manera:

[codesyntax lang=»bash»]

#!/bin/bash

SOURCE="/var/www/dev/php_sources"

#ELIMINAMOS EL DIRECTORIO CORE PARA PODER HACER UN CLONE EN LIMPIO
rm -fr "${SOURCE}/drupal/core"

#VOLVEMOS A CREAR LA CARPETA
mkdir "${SOURCE}/drupal/core"

#CLONAMOS EL CÓDIGO DE DRUPAL Y ELIMINAMOS LA CARPETA .GIT YA QUE NO QUEREMOS UN REPOSITORIO AQUÍ
git clone --recursive --depth=1 --branch=7.x http://git.drupal.org/project/drupal.git "${SOURCE}/drupal/core/" && rm -fr .git

#DESCARGAMOS LOS ARCHIVOS DE TRADUCCIÓN DE DRUPAL Y LOS COPIAMOS EN EL DIRECTORIO CORRESPONDIENTE
wget -O "${SOURCE}/drupal/core/profiles/standard/translations/drupal-7.34.es.po" http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.34.es.po

[/codesyntax]

 

Lo mismo con los directorios:

mkdir -p /var/www/dev/php_sources/drupal/core
mkdir -p /var/www/dev/php_sources/drupal/modules
mkdir -p /var/www/dev/php_sources/drupal/themes

Para la descarga del código fuente de los módulos y temas habría que hacer lo mismo que con los plugins y temas de WordPress, solo que en Git.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Descubre más desde Interadictos

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo