7 minutos de lectura ( 1405 palabras)

Automatizar el sitio de prueba de tu componente

Automatizar el sitio de prueba de tu componente

Hoy en día casi todos los desarrolladores de Joomla! tienen un sitio de demostración para mostrar una prueba de su componente. Realmente no importa si su componente es comercial o si es gratuito, la mayoría de los usuarios esperan poder probar la funcionalidad y "verlo en acción" antes de adquirir o perder el tiempo descargando e instalando en su propio sitio. Esto significa que un desarrollador de componentes, tiene que mantener en todo momento, un sitio de demostración en funcionamiento, con la última versión de su componente.

Hay varias formas diferentes de lograr esto. Me gustaría presentar la forma en que nuestra tienda en www.crmery.com ha encontrado la forma más exitosa para nosotros. No quiero decir que este es el único modo de ejecutar un sitio de demostración, (o incluso la mejor manera), pero ha demostrado ser muy eficaz para nuestros propósitos. Pensé que podría ser útil a los demás.

Utilizamos GitHub para la gestión de nuestras versiones de software y como resultado tenemos algunas herramientas muy poderosas que podemos aprovechar para hacer que nuestro sitio de demostración siempre esté sincronizado. Puedes configurar su repositorio en una variedad de maneras y en otro post voy a entrar en detalles sobre cómo Joomla! maneja sus repositorios y cómo hemos elegido el manejo del nuestro. La conclusión es que es necesario tener un master o rama de producción. Esta rama (branch) contiene solamente código estable, por lo que debe de ser capaz de descargarse el código de esta rama e instalarlo y ejecutarlo sin problemas. Esta es la rama que queremos hacer referencia a nuestro sitio de demostración.

GitHub proporciona enlaces a una variedad de aplicaciones y funciones. Puedes encontrar estas, en la sección de administración de su repositorio. Una vez en la zona del admin se encuentran los "Service Hooks" en el menú de la izquierda como se indica en la imagen de abajo.

Zona Admin

Al hacer clic en los "Service Hooks" le dará una lista de los servicios disponibles a los que puede hacer referencia. Los Hooks de GitHub proporcionan una manera conveniente de recibir información acerca de cada commit, ya que está hecho en su repositorio. Cualquier Hooks que defina se activará cada vez que se haga un commit a su repositorio. No se sienta abrumado, sólo vamos a ver una, la primera opción, "Web Hook URL's". Lo que vamos a hacer es entrar en un camino hacia un lugar en nuestro servidor donde tenemos una carpeta git especial. Tendrás que introducir la URL en el navegador, en un formato accesible estándar:

Ejemplo:

http://demo.crmery.com/gitrepo/git.php

Guarde los cambios y ya está por el momento en GitHub. Vamos a volver a esto más adelante para probar los service hook y agregar las llaves SSH. Ahora tiene que configurar esta carpeta git especial en su servidor. Esto implica un par de pasos. La primera cosa que probablemente debería hacer es asegurarse de que git está habilitado y ejecutándose en el servidor. Puedes hacer esto mediante la apertura de una ventana de terminal y escribiendo simplemente:

git --version

Debes ver un resultado similar al siguiente:

git version 1.8.0

Si obtiene un error command not found entonces tendrás que configurar git antes de continuar. Una vez que sepas que git está instalado en el servidor, ya estás listo para pasar a la siguiente etapa. Tendrás que crear el directorio y el archivo que has introducido en GitHub. En nuestro caso, tenemos que crear una carpeta llamada gitrepo y luego añadir un archivo llamado git.php.

Para el contenido del archivo git.php se añade el siguiente:

<!--?php
      if($_REQUEST['payload']) {
         shell_exec('/usr/local/bin/git fetch --all &&
         /usr/local/bin/git reset --hard origin/master');
      }
?>

Este es el archivo y el código que se ejecutará cada vez que se dispara el hook de GitHub. GitHub proporcionará un conjunto de variables denominada payload. Esto contiene los detalles del commit. Si tienes un payload válido, entonces el archivo ejecuta un comando git para interpretar el payload.

Antes de probar su hook y script hay algunas cosas más que necesitamos para la configuración. No te rindas, ya casi estamos allí.

Su GitHub requiere autenticación antes de hacer cualquier cosa de forma remota, por lo que necesita configurar su GitHub y su servidor a que se autentique silenciosamente y automáticamente utilizando claves SSH. GitHub tiene un maravilloso artículo sobre cómo configurar las claves SSH (Inglés), así que no tengo que entrar en detalles sobre ese proceso, basta con decir, que es fácil de seguir sus pasos.

* Hay que destacar aquí - asegúrese de que el usuario que utiliza para crear su clave id_rsa es el mismo usuario que ejecutará el comando git en su archivo git.php de arriba. En la mayoría de los casos es el usuario de apache. Esto es crítico para la autenticación.

Una vez que haya configurado las claves SSH tendrá que probar este comando ejecutando un comando git con este usuario y asegúrese de que su conexión a GitHub autentica y funciona correctamente. Puesto que necesitamos una copia de partida del repositorio, para empezar de todos modos podemos probar nuestra autenticación al mismo tiempo. Navegue a la carpeta que has creado (gitrepo) anteriormente y ejecute los siguientes comandos:

git -clone
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo./your_repo_path/repo.git
git -fetch --all origin/master

Con esto debes de ver una conexión establecida a github y un clon del repositorio de partida. Ahora ha copiado todos los archivos del repositorio en la carpeta de gitrepo. ¡Felicitaciones! La configuración de Git y sus claves de SSH están funcionando correctamente. Ahora puede probar su hook de GitHub mediante la publicación de un commit al repositorio y la comprobación de los archivos en la carpeta gitrepo en su servidor. Debe ver los cambios instantáneamente. Si lo haces, entonces tienes sólo un pequeño paso restante y la actualización de su sitio de demostración automática estará configurado. Si no, entonces tendrás que dar un paso atrás y ver en qué punto del proceso está fallando. Siempre puede utilizar las guías de GitHub para responder a cualquier pregunta específica.

El último paso para terminar de configurar el componente de demostración automática es asegurarse de que su sitio Joomla! utiliza los archivos ubicados en la carpeta gitrepo. La forma más sencilla de lograr esto es crear algunos enlaces simbólicos. Al establecer enlaces simbólicos puede mantener la misma estructura de directorios de su repositorio GitHub dentro de la carpeta gitrepo en su servidor. En caso de que necesites un ejemplo, aquí hay una manera que puede parecer:

/gitrepo/
    git.php
    manifest.xml
    /package/
       /component_folder/
       install.php
       component.xml
          /admin/
          /site/

Basta con crear un enlace simbólico en la carpeta del componente de la interfaz de usuario a la carpeta de sitio, dentro de la estructura anterior.

ln -sv /home/yourpath/public_html/components/com_component
/home/yourpath/public_html/gitrepo/package/component_folder/site

Crear un segundo enlace simbólico para la carpeta admin en la administración y ya está. Ahora, cada vez que se coloca una nueva versión de su rama principal del repositorio GitHub automáticamente actualizará su sitio de demostración con el nuevo código.

Hay un pequeño asunto de la base de datos que necesita ser configurado, pero se puede controlar la actualización, simplemente ejecutando el script install.php como parte de su archivo git.php.

Deja un comentario si quieres ver un post de seguimiento que describe estos pasos y cómo mantener su base de datos siempre en sincronía a través de GitHub.

Espero que este artículo le haya ayudado a ver una forma en que puede reducir su carga de trabajo mediante la actualización automática de su sitio de demostración del componente. Obviamente, la misma metodología puede seguirse para los módulos y plugins. Asegúrese de ver mi próximo artículo sobre la forma de simplificar sus procedimientos de implementación desde el escritorio a su repositorio de archivos.

Artículo Original: Automating Your Component Demo Site por David Hurley
Traducido por: Carlos Rodríguez
Miembro del: Equipo de Marketing y Difusión de Joomla! en Español

0
 

Comentarios

¿Ya està registrado? Ingresa Aquí
No hay comentarios por el momento. Sé el primero en enviar un comentario.

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/