2008-10-04 10 views
5

Hay otra publicación sobre SO relacionada con .NET, no con nosotros. Puro PHP. Tratando de encontrar la mejor forma/proceso para implementar una versión estable de nuestra aplicación PHP. He visto un artículo en Capistrano, pero tengo curiosidad por saber qué más hay por ahí. Además de las razones obvias, también estoy buscando agregar algunas secuencias de comandos para que el SVN rev number gets added in there as well.¿Cuál es el mejor proceso/aplicación para la implementación automatizada de aplicaciones PHP?

Muchas gracias.

+0

hombre, la gente está loca por los números de revisión de SVN. – nickf

+0

oh sí, pero quiero decir, hay alrededor de dos docenas de preguntas aquí acerca de cómo obtener el número general de rev de SVN en sus páginas, como SO tiene en la parte inferior. – nickf

+0

Capistrano pone el número de rev SVN en un archivo de texto en el directorio desplegado. Lo suficientemente fácil como para hacer eco de eso en su página, si así lo desea. –

Respuesta

2

He usado un guión local desde hace bastante tiempo. Lo hará (basado en un archivo de configuración de la aplicación):

  1. Ejecute svn export en el repositorio basado en una etiqueta.
  2. Empaquetar la exportación en un archivo tar o zip, que incluye la etiqueta en el nombre.
  3. Utilice scp para copiar el paquete en el servidor apropiado (control de calidad o versión).
  4. Conéctese al servidor con ssh para instalar el paquete y ejecutar scripts posteriores a la instalación.

El archivo de configuración de la aplicación es parte del proyecto. Puede decirle a la secuencia de comandos (en el paso 2) que quite las rutas y procese los archivos especificados. También especifica los nombres de los servidores y cómo manejar los externos.

Recientemente migré la secuencia de comandos para admitir Git y Subversion. Probablemente también vaya a migrarlo a PHP, ya que ahora estamos ejecutando una configuración mixta (Linux y Windows), con Linux ahora en minoría.

Tengo planes para llamar automáticamente al script con los enganches post-commit, pero no he tenido la necesidad de implementarlo todavía.

+0

Hacemos lo mismo aquí, solo una buena idea es usar herramientas estandarizadas, que sean más fáciles de mantener/transferir. Para proyectos personales, podría estar bien, pero en un entorno empresarial, migrar tus scripts y scripts de compilación específicos del proyecto en contra de PHING o ANT, etc. podría ser más fácil de admitir ... – Djumaka

1

No sé si funciona para implementar una aplicación en vivo, pero phpUnderControl es una suite de integración continua (que ahora estoy empezando a investigar). Si no es compatible con las implementaciones de forma nativa, probablemente pueda ampliarse para hacerlas.

+1

He estado configurando un script de despliegue como el usted mencionó (planeo lanzar el mío de alguna manera en github) y lo tengo configurado y trabajando con phpUnderControl y funciona a las mil maravillas. SÓLO puedo implementar después de una compilación exitosa, es agradable. –

2

Casualmente, yo estaba leyendo acerca de un Apache Ant/GNU haga como herramienta de construcción llamada Phing. Lo que me gusta de él es la capacidad de escribir custom extensions en PHP.

+1

Secundado: he disfrutado mucho con Phing desde que comenzamos a usarlo. – leek

+1

Eso parece interesante y podría ser muy útil, así que gracias (!), Pero podrías _por favor_ no usar mal la palabra "irónicamente". Fue una coincidencia que estuvieras leyendo sobre esto. nickf

1

Estamos usando Webistrano, que es una interfaz web para Capistrano, para implementar algunas docenas de proyectos. Está construido como una aplicación de Ruby on Rails y proporciona una interfaz de usuario agradable, centralizada y consistente para las implementaciones de Capistrano.

En lugar de tener recetas de tapa en cada proyecto y ejecutar herramientas de línea de comandos, Webistrano almacena las recetas en su base de datos y le permite adjuntar las recetas a múltiples proyectos y etapas. Esto reduce la duplicación de scripts.

También es bueno que todos los registros de implementación estén almacenados, de modo que haya un rastro de auditoría. Quién implementó qué revisión en el servidor en vivo, ese tipo de cosas.

Como lo solicitó, el número de revisión también se almacena en el proyecto implementado.

En general, estamos muy satisfechos con ello.

Cuestiones relacionadas